Amazon S3 是在雲上廉價地備份和存儲文件的好地方。 雖然有些人使用它來存儲他們的個人數據,但還有其他人使用它來存儲他們網站的圖像和腳本,甚至將其用作 CDN。 在您的桌面上,您可以使用 CloudBerry、DragonDisk 等應用程序輕鬆訪問和管理您的 Amazon S3 帳戶,但如果您需要從命令行訪問它怎麼辦? 這就是 S3cmd 派上用場的地方。

S3cmd 是一個免費的命令行工具,用於在 Amazon S3 中上傳、檢索和管理數據。 除了 S3,它還支持其他使用 S3 協議的雲存儲服務提供商,例如 Google Cloud Storage 或 DreamHost DreamObjects。 此工具的最佳用途是在遠程服務器上,所有操作都在命令行上完成。 或者,您也可以使用它來創建批處理腳本和自動備份到 S3。

S3cmd 是用 Python 編寫的,因此只要安裝了 Python,幾乎所有操作系統都支持它。

安裝

S3cmd 可以在大多數 Linux 存儲庫中找到。 在 Debian/Ubuntu 或任何其他基於 apt 的發行版中,您可以使用以下命令安裝 S3cmd:

sudo apt-get install s3cmd

對於 Fedora、Centos 或任何其他基於 yum 的發行版:

或者,您可以 下載 源代碼,解壓縮包並運行安裝程序:

sudo python setup.py install

入門

在開始之前,您需要準備好 Amazon S3 的訪問密鑰和密鑰。 您可以在 亞馬遜管理控制台.

要開始,請打開終端並輸入:

它會首先提示您輸入您的訪問和秘密密鑰。

接下來,您必須輸入加密密鑰和 GPG 程序的路徑。

s3cmd-配置-加密

加密密鑰後是使用 HTTPS 協議的提示。 默認選項是 No,但您可以設置為 Yes 以更安全地連接到 Amazon S3。 請注意,使用 HTTPS 協議會降低傳輸速度,如果您使用代理,則無法使用。

s3cmd-配置-https

配置並測試設置後,您可以繼續使用 S3cmd。 如果您需要更改設置,您可以編輯 .s3cfg 主目錄中的文件,或運行 s3cmd –configure.

用法

首先,要查看 S3 賬戶中的存儲桶,您可以使用 ls.

s3cmd-list-bucket

要創建存儲桶,請使用 mb

s3cmd mb s3://test-s3cmd-bucket

請注意,您需要為存儲桶名稱添加前綴 s3://

s3cmd-創建存儲桶

要列出存儲桶中的內容,請使用 ls 連同存儲桶名稱。 例如:

s3cmd ls s3://test-s3cmd-bucket

s3cmd-list-bucket-content

將文件上傳到存儲桶

通過 S3cmd 上傳文件的最簡單方法是使用 put. 例如:

s3cmd put text.txt s3://test-s3cmd-bucket

此外,您可以使用 –encrypt 在上傳到 S3 之前加密文件。

s3cmd put --encrypt text.txt s3://test-s3cmd-bucket

的默認權限 put 是私有的,這意味著該文件只能由您查看。 如果需要文件可公開訪問,可以添加參數 –acl-public

s3cmd put --acl-public text.txt s3://test-s3cmd-bucket

要進行更精細的控制,請使用 –acl-grant=PERMISSION:EMAIL or USER_CANONICAL_ID. 例如:

PERMISSIONread, write, read_acp, write_acp, full_control, all.

從存儲桶中檢索文件

要檢索文件,請使用 get.

s3cmd get s3://test-s3cmd-bucket/text.txt text.txt

要下載存儲桶中的所有文件,只需附加 –recursive.

s3cmd get --recursive s3://test-s3cmd-bucket

從存儲桶中刪除文件

s3cmd 的刪除命令很簡單 del. 例如:

s3cmd del s3://test-s3cmd-bucket/text.txt

您還可以使用 –recursive 刪除存儲桶中的所有文件。

s3cmd del --recursive s3://test-s3cmd-bucket

如需更多 S3cmd 命令, 在此處查看其使用指南.

高級用法:將文件夾同步到 S3

假設您將所有重要文件存儲在一個文件夾中,並且希望將其同步到 S3。 S3cmd 帶有一個 sync 可以將本地文件夾同步到遠程目標。

s3cmd sync --delete-removed ~/SecretFolder s3://my-secret-bucket/

您所要做的就是創建一個 cronjob 來定期運行同步命令。

1. 打開 crontab。

2. 將以下行添加到 crontab 的末尾。 保存並退出 crontab。

5 * * * * s3cmd sync --delete-removed ~/SecretFolder s3://my-secret-bucket/

就是這樣。 您的系統現在將每 5 分鐘將機密文件夾同步到 S3。 您可以更改該值以按您喜歡的時間間隔運行同步命令。 您從秘密文件夾中刪除的每個文件也將從 S3 中刪除。

結論

對於需要在命令行環境下工作的人來說,S3cmd 確實是您從命令行訪問和管理 Amazon S3 的絕佳工具。 它不僅易於使用,而且還為高級使用和腳本編寫需求提供了大量選項。

訂閱我們的新聞!

我們最新的教程直接發送到您的收件箱

Previous article了解 VPN 的局限性以及如何確保自己的安全
Next article在 BrotherSoft Awards 2009 投票選出您最喜歡的軟件