AWS S3的使用

2017-03-16

  这两天Web这边有一个功能需求,使用到了AWS 的S3服务,这个东西在国内访问很慢,所以,一般也少有人使用,我们的业务主要在美国,所以,使用这个服务还是非常好的。国内的阿里云做到了云计算的龙头,我还是希望AWS北京数据中心能够尽快的开放出来,从去年中就开始公测,现在依然也没有个信儿,国内的境外企业的管制可真是严格。希望两方的加快工作进度吧。亚马逊给出的SDK实在是很多,各种语言的都有,不愧是大厂。人家这写的SDK也很好弄,只要搞清楚几个概念,也是很快就能够集成到自己的代码中的。AWS对资源的访问做了很好的权限控制。在CLI和SDK中操作AWS的EC2、S3等各种资源,需要一个独立的账号,账号需要隶属于一个组。组对资源的访问权限可以在管理控制台分配,该组的成员继承组的权限,也可以单独分配权限。
  第一步,在IAM页面中,先创建组,再创建一个s3的用户,最好把用户的权限控制了小一点。注意有几个概念,生成用户后,最后会给出用户的“访问密钥 ID”,“私有访问密钥”,这两个相当于临时的用户名和访问密码,需要把页面内的CSV下载下来保存好。给用户“添加权限”,选择“直接附加现有策略”,在搜索框内输入“AmazonS3FullAccess”,就给用户赋予了S3的全部访问权限。
  第二布,创建S3 Bucket。这个很好操作,注意选择好所在region的代码和bucket的名字,选择访问速度最快的区域us-west-1(加利福尼亚北),比如说你起名字myBucket,将来对外公开的url就是https://s3-us-west-1.amazonaws.com/myBucket/。
  第三部,配置CLI和SDK。现在,我们可以在本地机器配置CLI信息了。我们可以使用类似Linux Shell的方式来控制在亚马逊上所有的资源。可以写Shell脚本来完成你的工作,也可以使用PHP或Python的SDK来写程序,做到更精细的控制。需要pip,安装命令很简单 pip install --upgrade --user awscli。运行aws configure 来配置认证信息,填入上面创建用户页面的“访问密钥 ID”,“私有访问密钥”。先在CLI里测试一下,比如aws s3 sync myLocalDir s3://myBucket/。如果能够在正确运行,就表示可以继续了。PHP的SDK很简单,如果使用Laravel,也可以使用composer来引入这个SDK。PHP的SDK可能会用到当前机器上的CLI配置信息,如~/.aws/config 或者~/.aws/credentials文件,这里面存放的就是上面提到的用户名和密码,还有s3 桶所在的区域,也可以把这些信息直接写到PHP文件里,如创建的S3 Client对象时传入。

  在EC2的虚拟机上上传文件到S3,速度快的飞起。S3的文件夹删除速度太慢了,慢的让人受不了。(后来一看,发现我在老版本的S3控制页面的删除操作异常的慢,在新的页面就很快,这是什么鬼?使用的内部接口不一样?)
  文档还是要好好读的。aws的文档写的很容易懂。国内用户想要使用aws,推荐试一试韩国的数据中心,速度还是很快的。搭个梯子什么的,可以搞一搞的。

 

  1. http://docs.aws.amazon.com/aws-sdk-php/v3/api/
如果有任何意见,欢迎留言讨论。


[ 主页 ]
COMMENTS
POST A COMMENT

(optional)



(optional)