如何使用Linux命令行访问Amazon S3云存储?

系统 Linux
Amazon S3 是Amazon网落服务(Amazon Web Services,AWS)提供的云存储。Amazon S3在众多第三方已经开发完成的商业服务或客户端软件之上,发布了一组网络服务接口。本教程描述怎样用Linux命令行访问Amazon S3云存储。

Amazon S3 是Amazon网落服务(Amazon Web Services,AWS)提供的云存储。Amazon S3在众多第三方已经开发完成的商业服务或客户端软件之上,发布了一组网络服务接口。本教程描述怎样用Linux命令行访问Amazon S3云存储。

***的Amazon S3命令行客户端是用python写的s3cmd。作为一个简单的AWS S3命令行工具,s3cmd的思想是用于运行脚本化的cron任务,比如每天的备份工作。

在Linux上安装s3cmd

在Ubuntu或者Debian上安装s3cm

  1. $ sudo apt-get install s3cmd 

在Fedora上安装s3cmd

  1. $ sudo yum install s3cmd 

在CentOS或者RHEL上安装s3cm

  1. $ s3cmd put –acl-public 4.png s3://dev99 
  2. 4.png -> s3://dev99/4.png [1 of 1] 
  3. 30778 of 30778 100% in 8s 3.34 kB/s done 

先从官方站点上下载rpm包,然后手工安装。64位CentOS或RHEL 6,用以下命令:

  1. $ sudo rpm -ivh s3cmd-1.0.0-4.1.x86_64.rpm 

配置s3cmd

***次运行s3cmd需要运行下面的命令做配置:

  1. $ s3cmd –configure 

它将会问你一系列问题:

  • AWS S3的访问密钥和安全密钥
  • 对AWS S3双向传输的加密密码和加密数据
  • 为加密数据设定GPG程序的路径(例如,/usr/bin/gpg)
  • 是否使用https协议
  • 如果使用http代理,设定名字和端口

配置将以保存普通文本格式保存在 ~/.s3cfg.

s3cmd的基本用法

在你的账户中列出所有现有的bucket:

  1. $ s3cmd ls 
  2. 2011-05-28 22:30 s3://mybucket1 
  3. 2011-05-29 00:14 s3://mybucket2 

建立新的bucket:

  1. $ s3cmd mb s3://dev99 
  2. Bucket ’s3://dev99/’ created 

上传文件到现有的bucket:

  1. $ s3cmd put 1.png 2.png 3.png s3://dev99 
  2. 1.png -> s3://dev99/1.png [1 of 3] 
  3. 26261 of 26261 100% in 5s 4.33 kB/s done 
  4. 2.png -> s3://dev99/2.png [2 of 3] 
  5. 201430 of 201430 100% in 2s 98.05 kB/s done 
  6. 3.png -> s3://dev99/3.png [3 of 3] 
  7. 46630 of 46630 100% in 0s 56.62 kB/s done 

上传文件的默认访问权限是私有的(private),就是只有你自己可以访问,使用正确的访问和安全密码即可。

上传公开访问权限的文件到现有bucket:

  1. $ s3cmd put --acl-public 4.png s3://dev99 
  2. 4.png -> s3://dev99/4.png  [1 of 1] 
  3. 30778 of 30778   100% in    8s     3.34 kB/s  done 
  4. Public URL of the object is: http://dev99.s3.amazonaws.com/4.png 

如果上传的文件授予公开访问权限,任何人在浏览器中都可以通过http://dev99.s3.amazonaws.com/4.png 访问。

查看一个现有bucket的内容:

  1. $ s3cmd ls s3://dev99 
  2. 2013-06-02 02:52 26261 s3://dev99/1.png 
  3. 2013-06-02 02:52 201430 s3://dev99/2.png 
  4. 2013-06-02 02:52 46630 s3://dev99/3.png 
  5. 2013-06-02 02:56 30778 s3://dev99/4.png 

下载现有bucket包含的文件(例如所有的.png文件):

  1. $ s3cmd get s3://dev99/*.png 
  2. s3://dev99/1.png -> ./1.png [1 of 4] 
  3. 26261 of 26261 100% in 0s 39.39 kB/s done 
  4. s3://dev99/2.png -> ./2.png [2 of 4] 
  5. 201430 of 201430 100% in 7s 24.64 kB/s done 
  6. s3://dev99/3.png -> ./3.png [3 of 4] 
  7. 46630 of 46630 100% in 1s 39.34 kB/s done 
  8. s3://dev99/4.png -> ./4.png [4 of 4] 
  9. 30778 of 30778 100% in 0s 97.01 kB/s done 

删除现有bucket中的文件:

  1. $ s3cmd del s3://dev99/*.png 
  2. File s3://dev99/1.png deleted 
  3. File s3://dev99/2.png deleted 
  4. File s3://dev99/3.png deleted 
  5. File s3://dev99/4.png deleted 

获取现有bucket的信息,包括存储位置和访问控制列表(ACL):

  1. $ s3cmd info s3://dev99 
  2. s3://dev99/ (bucket): 
  3. Location: us-east-1 
  4. ACL: dan.nanni: READ 
  5. ACL: dan.nanni: WRITE 
  6. ACL: dan.nanni: READ_ACP 
  7. ACL: dan.nanni: WRITE_ACP 

在上传到现有的bucket之前,加密文件:

  1. $ s3cmd -e put encrypt.png s3://dev99 
  2. /tmp/tmpfile-pzT1zV3kLZlxDwqA0kwy -> s3://dev99/encrypt.png [1 of 1] 
  3. 196890 of 196890 100% in 1s 99.51 kB/s done 

当用s3cmd下载一个加密过的文件时,它会自动检测加密并在下载过程解密,因此下载和访问加密文件时,就像通常所做的一样:

  1. $ s3cmd get s3://dev99/encrypt.png 
  2. s3://dev99/encrypt.png -> ./encrypt.png [1 of 1] 
  3. 196890 of 196890 100% in 1s 131.29 kB/s done 

删除现有的bucket:

  1. $ s3cmd rb s3://dev99 
  2. Bucket ’s3://dev99/’ removed 

注意,你不能删除一个非空的bucket。

原文链接: Dan Nanni 翻译: 极客范 - pythagoras

译文链接: http://www.geekfan.net/7935/

责任编辑:黄丹 来源: 极客范
相关推荐

2009-07-31 17:01:00

ibmdwAmazon

2017-09-04 15:37:19

2018-05-17 22:30:01

Amazon S3收集存储

2018-03-25 10:52:06

Amazon S3数据存储

2009-08-27 10:51:15

ibmdw云计算

2013-06-19 09:44:31

AmazonS3加密云存储

2013-04-07 09:28:05

亚马逊Amazon S3

2015-12-30 14:47:01

LinuxDropbox访问

2015-01-13 10:23:10

亚马逊AmazonS3AWS

2009-08-16 20:24:59

linux命令行登陆linux命令行linux命令

2014-01-22 10:21:55

Linux命令行

2018-06-19 16:05:27

LinuxStratis存储

2013-03-14 09:39:37

云存储Azure亚马逊S3

2012-04-27 11:09:44

AmazonAWS

2018-04-25 10:46:05

Linux命令行日历

2015-07-20 11:19:22

Amazon S3AWS加密文件配置

2012-02-08 16:37:36

ibmdw

2021-09-30 07:03:12

gRPC服务Grpcurl

2014-01-24 09:09:32

Linux命令行网速

2010-06-01 19:14:53

SVN命令行
点赞
收藏

51CTO技术栈公众号