如何使用Linux命令行訪問Amazon S3云存儲(chǔ)?
Amazon S3 是Amazon網(wǎng)落服務(wù)(Amazon Web Services,AWS)提供的云存儲(chǔ)。Amazon S3在眾多第三方已經(jīng)開發(fā)完成的商業(yè)服務(wù)或客戶端軟件之上,發(fā)布了一組網(wǎng)絡(luò)服務(wù)接口。本教程描述怎樣用Linux命令行訪問Amazon S3云存儲(chǔ)。
***的Amazon S3命令行客戶端是用python寫的s3cmd。作為一個(gè)簡單的AWS S3命令行工具,s3cmd的思想是用于運(yùn)行腳本化的cron任務(wù),比如每天的備份工作。
在Linux上安裝s3cmd
在Ubuntu或者Debian上安裝s3cm
- $ sudo apt-get install s3cmd
 
在Fedora上安裝s3cmd
- $ sudo yum install s3cmd
 
在CentOS或者RHEL上安裝s3cm
- $ s3cmd put –acl-public 4.png s3://dev99
 - 4.png -> s3://dev99/4.png [1 of 1]
 - 30778 of 30778 100% in 8s 3.34 kB/s done
 
先從官方站點(diǎn)上下載rpm包,然后手工安裝。64位CentOS或RHEL 6,用以下命令:
- $ sudo rpm -ivh s3cmd-1.0.0-4.1.x86_64.rpm
 
配置s3cmd
***次運(yùn)行s3cmd需要運(yùn)行下面的命令做配置:
- $ s3cmd –configure
 
它將會(huì)問你一系列問題:
- AWS S3的訪問密鑰和安全密鑰
 - 對(duì)AWS S3雙向傳輸?shù)募用苊艽a和加密數(shù)據(jù)
 - 為加密數(shù)據(jù)設(shè)定GPG程序的路徑(例如,/usr/bin/gpg)
 - 是否使用https協(xié)議
 - 如果使用http代理,設(shè)定名字和端口
 
配置將以保存普通文本格式保存在 ~/.s3cfg.
s3cmd的基本用法
在你的賬戶中列出所有現(xiàn)有的bucket:
- $ s3cmd ls
 - 2011-05-28 22:30 s3://mybucket1
 - 2011-05-29 00:14 s3://mybucket2
 
建立新的bucket:
- $ s3cmd mb s3://dev99
 - Bucket ’s3://dev99/’ created
 
上傳文件到現(xiàn)有的bucket:
- $ s3cmd put 1.png 2.png 3.png s3://dev99
 - 1.png -> s3://dev99/1.png [1 of 3]
 - 26261 of 26261 100% in 5s 4.33 kB/s done
 - 2.png -> s3://dev99/2.png [2 of 3]
 - 201430 of 201430 100% in 2s 98.05 kB/s done
 - 3.png -> s3://dev99/3.png [3 of 3]
 - 46630 of 46630 100% in 0s 56.62 kB/s done
 
上傳文件的默認(rèn)訪問權(quán)限是私有的(private),就是只有你自己可以訪問,使用正確的訪問和安全密碼即可。
上傳公開訪問權(quán)限的文件到現(xiàn)有bucket:
- $ s3cmd put --acl-public 4.png s3://dev99
 - 4.png -> s3://dev99/4.png [1 of 1]
 - 30778 of 30778 100% in 8s 3.34 kB/s done
 - Public URL of the object is: http://dev99.s3.amazonaws.com/4.png
 
如果上傳的文件授予公開訪問權(quán)限,任何人在瀏覽器中都可以通過http://dev99.s3.amazonaws.com/4.png 訪問。
查看一個(gè)現(xiàn)有bucket的內(nèi)容:
- $ s3cmd ls s3://dev99
 - 2013-06-02 02:52 26261 s3://dev99/1.png
 - 2013-06-02 02:52 201430 s3://dev99/2.png
 - 2013-06-02 02:52 46630 s3://dev99/3.png
 - 2013-06-02 02:56 30778 s3://dev99/4.png
 
下載現(xiàn)有bucket包含的文件(例如所有的.png文件):
- $ s3cmd get s3://dev99/*.png
 - s3://dev99/1.png -> ./1.png [1 of 4]
 - 26261 of 26261 100% in 0s 39.39 kB/s done
 - s3://dev99/2.png -> ./2.png [2 of 4]
 - 201430 of 201430 100% in 7s 24.64 kB/s done
 - s3://dev99/3.png -> ./3.png [3 of 4]
 - 46630 of 46630 100% in 1s 39.34 kB/s done
 - s3://dev99/4.png -> ./4.png [4 of 4]
 - 30778 of 30778 100% in 0s 97.01 kB/s done
 
刪除現(xiàn)有bucket中的文件:
- $ s3cmd del s3://dev99/*.png
 - File s3://dev99/1.png deleted
 - File s3://dev99/2.png deleted
 - File s3://dev99/3.png deleted
 - File s3://dev99/4.png deleted
 
獲取現(xiàn)有bucket的信息,包括存儲(chǔ)位置和訪問控制列表(ACL):
- $ s3cmd info s3://dev99
 - s3://dev99/ (bucket):
 - Location: us-east-1
 - ACL: dan.nanni: READ
 - ACL: dan.nanni: WRITE
 - ACL: dan.nanni: READ_ACP
 - ACL: dan.nanni: WRITE_ACP
 
在上傳到現(xiàn)有的bucket之前,加密文件:
- $ s3cmd -e put encrypt.png s3://dev99
 - /tmp/tmpfile-pzT1zV3kLZlxDwqA0kwy -> s3://dev99/encrypt.png [1 of 1]
 - 196890 of 196890 100% in 1s 99.51 kB/s done
 
當(dāng)用s3cmd下載一個(gè)加密過的文件時(shí),它會(huì)自動(dòng)檢測加密并在下載過程解密,因此下載和訪問加密文件時(shí),就像通常所做的一樣:
- $ s3cmd get s3://dev99/encrypt.png
 - s3://dev99/encrypt.png -> ./encrypt.png [1 of 1]
 - 196890 of 196890 100% in 1s 131.29 kB/s done
 
刪除現(xiàn)有的bucket:
- $ s3cmd rb s3://dev99
 - Bucket ’s3://dev99/’ removed
 
注意,你不能刪除一個(gè)非空的bucket。
原文鏈接: Dan Nanni 翻譯: 極客范 - pythagoras















 
 
 



 
 
 
 