9 個 AWS S3 命令以及管理存儲桶和數據的示例
已發表: 2022-03-15數據的控制和管理可能是一項艱鉅的任務。 這些 AWS S3 命令將幫助您快速有效地管理您的 AWS S3 存儲桶和數據。
AWS S3 是 AWS 提供的對象存儲服務。 它是 AWS 使用最廣泛的存儲服務,幾乎可以保存無限量的數據。 它具有高可用性、持久性並且易於與其他幾個 AWS 服務集成。
AWS S3 可供有任何需求的人使用,例如移動/Web 應用程序存儲、大數據存儲、機器學習數據存儲、託管靜態網站等等。
如果您一直在項目中使用 S3,您就會知道,鑑於存儲容量巨大,管理 100 多個存儲桶和這些存儲桶中的 TB 數據可能是一項艱鉅的工作。 我們有一個 AWS S3 命令列表和示例,您可以使用這些命令來有效地管理您的 AWS S3 存儲桶和數據。
AWS CLI 設置
成功下載並安裝 AWS CLI 後,您需要配置 AWS 憑證才能訪問您的 AWS 賬戶和服務。 讓我們快速了解如何配置 AWS CLI。
第一步是創建一個對 AWS 賬戶具有編程訪問權限的用戶。 請記住在為 AWS CLI 創建用戶時選中此框。

授予權限並創建用戶。 在您成功創建此用戶後的最後一個屏幕上,複製此用戶的訪問密鑰 ID 和秘密訪問密鑰。 我們將使用這些憑證通過 AWS CLI 登錄。

現在轉到您選擇的終端並運行以下命令。
aws 配置
出現提示時輸入訪問密鑰 ID 和秘密訪問密鑰。 選擇您選擇的任何 AWS 區域和命令輸出格式。 我個人更喜歡使用 JSON 格式。 這沒什麼大不了的,您以後可以隨時更改這些值。

您現在可以在控制台中運行任何 AWS CLI 命令。 現在讓我們看看 AWS S3 命令。
cp
cp 命令只是將數據複製到 S3 存儲桶或從 S3 存儲桶複製數據。 它可用於將文件從本地複製到 S3、從 S3 複製到本地以及兩個 S3 存儲桶之間。 您可以使用命令提供許多其他參數。
例如,-dryrun 參數用於測試命令,-storage-class 參數用於指定數據在 S3 中的存儲類別,其他參數用於設置加密等等。 cp 命令使您可以完全控制如何在 S3 中配置數據安全性。
用法
aws s3 cp <SOURCE> <DESTINATION> [--options]
例子
將數據從本地複製到 S3
aws s3 cp file_name.txt s3://bucket_name/file_name_2.txt
將數據從 S3 複製到本地
aws s3 cp s3://bucket_name/file_name_2.txt file_name.txt
在 S3 存儲桶之間複製數據
aws s3 cp s3://bucket_name/file_name.txt s3://bucket_name_2/file_name_2.txt
將數據從本地複製到 S3 – IA
aws s3 cp file_name.txt s3://bucket_name/file_name_2.txt --storage-class STANDARD_IA
將本地文件夾中的所有數據複製到 S3
aws s3 cp ./local_folder s3://bucket_name --recursive
ls
ls 命令用於列出存儲桶或存儲桶的內容。 因此,如果您只是想查看有關您的存儲桶的信息或這些存儲桶中的數據,您可以使用 ls 命令。
用法:
aws s3 ls NONE 或 <BUCKET_NAME> [--options]
例子
列出賬戶中的所有存儲桶
aws s3 ls 輸出: 2022-02-02 18:20:14 BUCKET_NAME_1 2022-03-20 13:12:43 BUCKET_NAME_2 2022-03-29 10:52:33 BUCKET_NAME_3
此命令列出您賬戶中的所有存儲桶以及存儲桶創建日期。
列出存儲桶中的所有頂級對象
aws s3 ls BUCKET_NAME_1 或 s3://BUCKET_NAME_1 輸出: PRE samplePrefix/ 2021-12-09 12:23:20 8754 file_1.png 2021-12-09 12:23:21 1290 文件_2.json 2021-12-09 12:23:21 3088 文件_3.html
此命令列出 S3 存儲桶中的所有頂級對象。 請注意,帶有前綴 samplePrefix/ 的對像在此處僅顯示頂級對象。
列出存儲桶中的所有對象
aws s3 ls BUCKET_NAME_1 或 s3://BUCKET_NAME_1 --recursive 輸出: 2021-12-09 12:23:20 8754 file_1.png 2021-12-09 12:23:21 1290 文件_2.json 2021-12-09 12:23:21 3088 文件_3.html 2021-12-09 12:23:20 16328 samplePrefix/file_1.txt 2021-12-09 12:23:20 29325 samplePrefix/sampleSubPrefix/file_1.css
此命令列出 S3 存儲桶中的所有對象。 注意這裡還會顯示帶有前綴 samplePrefix/ 的對象和所有子前綴。
mb
mb 命令僅用於創建新的 S3 存儲桶。 這是一個相當簡單的命令,但要創建新存儲桶,新存儲桶的名稱在所有 S3 存儲桶中應該是唯一的。
用法
aws s3 mb <BUCKET_NAME>
例子
在特定區域創建新存儲桶
aws s3 mb myUniqueBucketName --region eu-west-1
MV
mv 命令只是將數據移入和移出 S3 存儲桶。 就像 cp 命令一樣,mv 命令用於將數據從本地移動到 S3、S3 到本地,或者在兩個 S3 存儲桶之間移動。
mv 和 cp 命令之間的唯一區別是,當使用 mv 命令時,文件會從源中刪除。 AWS 將此文件移動到目標。 您可以使用命令指定很多選項。

用法
aws s3 mv <SOURCE> <DESTINATION> [--options]
例子
將數據從本地移動到 S3
aws s3 mv file_name.txt s3://bucket_name/file_name_2.txt
將數據從 S3 移動到本地
aws s3 mv s3://bucket_name/file_name_2.txt file_name.txt
在 S3 存儲桶之間移動數據
aws s3 mv s3://bucket_name/file_name.txt s3://bucket_name_2/file_name_2.txt
將數據從本地移動到 S3 – IA
aws s3 mv file_name.txt s3://bucket_name/file_name_2.txt --storage-class STANDARD_IA
將所有數據從 S3 中的前綴移動到本地文件夾。
aws s3 mv s3://bucket_name/somePrefix ./localFolder --recursive
預兆
presign 命令為 S3 存儲桶中的密鑰生成預簽名 URL。 您可以使用此命令生成可供其他人用來訪問指定 S3 存儲桶密鑰中的文件的 URL。
用法
aws s3 presign <OBJECT_KEY> –expires-in <TIME_IN_SECONDS>
例子
為存儲桶中的對像生成有效期為 1 小時的預簽名 URL。
aws s3 presign s3://bucket_name/samplePrefix/file_name.png --expires-in 3600 輸出: https://s3.ap-south-1.amazonaws.com/bucket_name/samplePrefix/file_name.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA4MCZT73PAX7ZMVFW%2F20220314%2Fap-south-1% 2Fs3%2Faws4_request&X-Amz-Date=20220314T054113Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=主機&X-Amz-Signature=f14608bbf3e1f9f8d215eb5b439b87e167b1055bcd7a45c13a33debd
rb
rb 命令僅用於刪除 S3 存儲桶。
用法
aws rb <BUCKET_NAME>
例子
刪除 S3 存儲桶。
aws s3 mb myBucketName # 如果此bucket中有任何數據,則此命令失敗。
刪除 S3 存儲桶以及 S3 存儲桶中的數據。
aws s3 mb myBucketName --force
R M
rm 命令僅用於刪除 S3 存儲桶中的對象。
用法
aws s3 rm <S3Uri_To_The_File>
例子
從 S3 存儲桶中刪除一個文件。
aws s3 rm s3://bucket_name/sample_prefix/file_name_2.txt
刪除 S3 存儲桶中具有特定前綴的所有文件。
aws s3 rm s3://bucket_name/sample_prefix --recursive
刪除 S3 存儲桶中的所有文件。
aws s3 rm s3://bucket_name --recursive
同步
與 cp 命令一樣,sync 命令將文件從源複製並更新到目標。 了解 cp 和 sync 命令之間的區別很重要。 當您使用 cp 時,即使數據已經存在於目標中,它也會將數據從源複製到目標。
如果從源中刪除文件,它也不會從目標中刪除文件。 但是,同步會在復制數據之前查看目標,並且只複製新的和更新的文件。 同步命令類似於在 git 中提交和推送更改到遠程分支。 sync 命令提供了很多選項來自定義命令。
用法
aws s3 同步 <SOURCE> <DESTINATION> [--options]
例子
將本地文件夾同步到 S3
aws s3 同步 ./local_folder s3://bucket_name
將 S3 數據同步到本地文件夾
aws s3 同步 s3://bucket_name ./local_folder
在兩個 S3 存儲桶之間同步數據
aws s3 同步 s3://bucket_name s3://bucket_name_2
在兩個 S3 存儲桶之間移動數據,不包括所有 .txt 文件
aws s3 同步 s3://bucket_name s3://bucket_name_2 --exclude "*.txt
網站
您可以使用 S3 存儲桶來託管靜態網站。 website 命令用於為您的存儲桶配置 S3 靜態網站託管。
您指定索引和錯誤文件,S3 會為您提供一個 URL,您可以在其中查看文件。
用法
aws s3 網站 <S3_URI> [--options]
例子:
為 S3 存儲桶配置靜態託管並指定索引和錯誤文件
aws s3 網站 s3://bucket_name --index-document index.html --error-document error.html
結論
我希望以上內容能讓您了解一些常用的 AWS S3 命令來管理存儲桶。 如果您有興趣了解更多信息,可以查看 AWS 認證詳細信息。