AWS 命令行上传文件至 S3

今天备份 AWS 上的 RDS 数据,发现导出的文件经过压缩后依然有 200+M,由于所用服务器在国外如果用 sftp 下载到本地需要很久,并且文件内容是日志之类的很少会访问的数据,因此决定将文件上传至 AWS 的 Simple Storage Service 即 S3 中。

这里需要用 AWS 的命令行工具 aws,我的服务器中自带 aws 工具,搜了一下如果没有需要用 pip 安装,命令如下:

pip install awscli

在使用之前需要申请 Identity and Access Management 即 IAM 以获取 Access Id 和 Secret。打开 AWS 控制台并选择安全&身份中的 IAM

2016-11-07_22-04-22

选择左边的用户

2016-11-07_22-04-40

创建新用户,输入用户名

2016-11-07_22-05-08

点击创建,成功后就会看到该用户的访问密钥 ID 和私有访问密钥

2016-11-07_22-05-22

保存好凭证之后点击关闭,回到用户界面并点击刚刚生成的用户

2016-11-07_22-10-57

2016-11-07_22-11-03

在用户详情中选择权限

2016-11-07_22-11-07

点击附加策略,在附加策略的搜索框内搜索“S3”,选择 AmazonS3FullAccess 以获取 S3 的所有权限

2016-11-07_22-11-36_01

点击附加策略后回到用户详情页,看到策略添加成功

2016-11-07_22-11-47

回到 aws 命令行工具,熟悉要配置,输入:

aws configure

一次输入访问密钥 ID 、私有访问密钥、默认区域和返回数据的格式,前两个通过之前的步骤已经获取到了,默认区域需要输入固定的区域代码打开这里找到其中的 AWS Config 寻找自己默认的区域将 Region 这一列的字符串输入即可,返回格式可以是 json 或者 xml

2016-11-07_22-19-19

配置完成后,使用 S3 之前我们需要新建一个存储桶,可以通过网页新建也可以通过命令行新建

aws s3 mb s3://demo2016110722

2016-11-07_22-27-50

新建完成后,就可以使用命令将文件上传到 S3

aws s3 cp filePath s3://demo2016110722/aaa/bbb/

2016-11-07_22-26-56

当然通过 AWS 控制台也是可以看到的

2016-11-07_22-28-08

补充说明一下,作为上传目标地址 s3://demo2016110722/aaa/bbb/ 最后应以 / 结束,否则会被认为是将上传文件重命名为 bbb,即存储桶 demo2016110722 内文件夹 aaa 中的文件 bbb。

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注