【編者的話】
亞馬遜簡單存儲服務(wù)(S3)是亞馬遜網(wǎng)絡(luò)服務(wù)公司(AWS)提供的云存儲服務(wù)中一個(gè)重要的組成部分,也是用戶使用最為廣泛的云存儲服務(wù)。使用AmazonS3的好處很多,其中最大的三個(gè)好處就是安全、可靠、價(jià)格低廉。就算您是一個(gè) SAN 專家,喜歡維護(hù)硬件資產(chǎn)來存儲數(shù)據(jù)內(nèi)容,它也可能比您做的更好。在本教程中將介紹如何從Linux中的命令行來訪問亞馬遜S3云存儲。
以下為作者原文。
亞馬遜簡單存儲服務(wù)(S3)是亞馬遜網(wǎng)絡(luò)服務(wù)公司(AWS)提供的一項(xiàng)云存儲服務(wù)。亞馬遜S3發(fā)布了一系列Web服務(wù)接口,許多第三方商業(yè)服務(wù)或客戶機(jī)軟件都是基于這些接口開發(fā)而成的。
我在本教程中將介紹如何從Linux中的命令行來訪問亞馬遜S3云存儲。
最流行的亞馬遜S3命令行客戶軟件之一是用python編寫的s3cmd(http://s3tools.org/s3cmd)。作為一種簡單的AWS S3命令行工具,你想運(yùn)行諸如每日備份之類的腳本化計(jì)劃任務(wù)時(shí),使用s3cmd再理想不過了。
Linux上安裝s3cmd
如果想在Ubuntu或Debian上安裝s3cm,運(yùn)行這個(gè)命令:
$ sudo apt-get install s3cmd如果想在Fedora上安裝s3cmd,運(yùn)行這個(gè)命令:
$ sudo yum install s3cmd如果想在CentOS或RHEL上安裝s3cm,先從官方網(wǎng)站(http://s3tools.org/repo/RHEL_6/)安裝.rpm程序包,然后手動安裝。針對64位CentOS或RHEL 6,運(yùn)行這個(gè)命令:
$ sudo rpm -ivh s3cmd-1.0.0-4.1.x86_64.rpm配置s3cmd
你第一次運(yùn)行s3cmd時(shí),需要運(yùn)行下面這個(gè)命令,對它進(jìn)行配置:
$ s3cmd --configure它會向你提出一系列問題:
AWS S3的訪問密鑰和安全密鑰用于與AWS S3之間來回傳輸?shù)募用軘?shù)據(jù)的加密密碼用于加密數(shù)據(jù)的GPG程序的路徑(比如/usr/bin/gpg)是否使用HTTPS協(xié)議如果使用HTTPS協(xié)議,HTTP代理的名稱和端口然后配置內(nèi)容將以明文格式保存在~/.s3cfg中。
s3cmd的基本用法
想列出你的AWS S3帳戶中所有的現(xiàn)有存儲桶(bucket),運(yùn)行這個(gè)命令:
$ s3cmd ls 2011-05-28 22:30 s3://mybucket1 2011-05-29 00:14 s3://mybucket2想創(chuàng)建一個(gè)新的存儲桶,運(yùn)行這個(gè)命令:
$ s3cmd mb s3://dev99 Bucket 's3://dev99/' created想把文件上傳到一個(gè)現(xiàn)有的存儲桶,運(yùn)行這個(gè)命令:
$ 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)有存儲桶,運(yùn)行這個(gè)命令:
$ 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)限,任何人都可以訪問已上傳文件,只要使用任何Web瀏覽器訪問http://dev99.s3.amazonaws.com/4.png。
想查看現(xiàn)有存儲桶里面的的內(nèi)容,運(yùn)行這個(gè)命令:
$ 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)有存儲桶里面含有的文件(比如所有的.png文件),運(yùn)行這個(gè)命令:
$ 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)有存儲桶里面的文件,運(yùn)行這個(gè)命令:
$ 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想獲得關(guān)于現(xiàn)有存儲桶的信息,包括存儲桶的存儲位置和訪問控制列表(ACL),運(yùn)行這個(gè)命令:
$ 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)有存儲桶之前對文件進(jìn)行加密,運(yùn)行這個(gè)命令:
$ 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用s3cmd下載已加密文件時(shí),它會自動檢測有無加密,一旦下載,就對文件實(shí)時(shí)進(jìn)行解密。因而,想下載和訪問已加密文件,只要像平常那樣運(yùn)行即可:
$ 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)有的存儲桶,運(yùn)行這個(gè)命令:
$ s3cmd rb s3://dev99 Bucket 's3://dev99/' removed請注意:如果存儲桶里面不是空的,就沒法刪除它。
英文原文鏈接:http://xmodulo.com/how-to-access-amazon-s3-cloud-storage-from-command-line-in-linux.html