使用 AWS CLI 的 Amazon S3 範例
下列程式碼範例示範如何使用 AWS Command Line Interface 搭配 Amazon S3 來執行動作,並實作常見案例。
Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境中查看內容中的動作。
每個範例均包含完整原始程式碼的連結,您可在連結中找到如何在內容中設定和執行程式碼的相關指示。
主題
動作
以下程式碼範例顯示如何使用 abort-multipart-upload。
- AWS CLI
-
中止指定的分段上傳
下列
abort-multipart-upload命令會中止儲存貯體amzn-s3-demo-bucket中金鑰multipart/01的分段上傳。aws s3api abort-multipart-upload \ --bucketamzn-s3-demo-bucket\ --keymultipart/01\ --upload-iddfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R此命令所需的上傳 ID 是由
create-multipart-upload輸出,也可以使用list-multipart-uploads擷取。-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中 AbortMultipartUpload
。
-
以下程式碼範例顯示如何使用 complete-multipart-upload。
- AWS CLI
-
下列命令會完成儲存貯體
amzn-s3-demo-bucket中金鑰multipart/01的分段上傳:aws s3api complete-multipart-upload --multipart-uploadfile://mpustruct--bucketamzn-s3-demo-bucket--key 'multipart/01' --upload-iddfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R此命令所需的上傳 ID 是由
create-multipart-upload輸出,也可以使用list-multipart-uploads擷取。上述命令中的分段上傳選項採用 JSON 結構,該結構描述了應重新組合成完整檔案的分段上傳的各個部分。在此範例中,
file://字首用於從本機資料夾中名為mpustruct的檔案載入 JSON 結構。mpustruct:
{ "Parts": [ { "ETag": "e868e0f4719e394144ef36531ee6824c", "PartNumber": 1 }, { "ETag": "6bb2b12753d66fe86da4998aa33fffb0", "PartNumber": 2 }, { "ETag": "d0a0112e841abec9c9ec83406f0159c8", "PartNumber": 3 } ] }每次使用
upload-part命令上傳各部分時,都會輸出每個部分的 ETag 值,也可以透過呼叫list-parts或計算每個部分的 MD5 檢查總和來擷取。輸出:
{ "ETag": "\"3944a9f7a4faab7f78788ff6210f63f0-3\"", "Bucket": "amzn-s3-demo-bucket", "Location": "https://amzn-s3-demo-bucket.s3.amazonaws.com/multipart%2F01", "Key": "multipart/01" }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 CompleteMultipartUpload
。
-
以下程式碼範例顯示如何使用 copy-object。
- AWS CLI
-
下列命令會將物件從
bucket-1複製到bucket-2:aws s3api copy-object --copy-sourcebucket-1/test.txt--keytest.txt--bucketbucket-2輸出:
{ "CopyObjectResult": { "LastModified": "2015-11-10T01:07:25.000Z", "ETag": "\"589c8b79c230a6ecd5a7e1d040a9a030\"" }, "VersionId": "YdnYvTCVDqRRFA.NFJjy36p0hxifMlkA" }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 CopyObject
。
-
以下程式碼範例顯示如何使用 cp。
- AWS CLI
-
範例 1:將本機檔案複製到 S3
下列
cp命令會將單一檔案複製到指定的儲存貯體和索引鍵:aws s3 cptest.txts3://amzn-s3-demo-bucket/test2.txt輸出:
upload: test.txt to s3://amzn-s3-demo-bucket/test2.txt範例 2:將本機檔案複製到具有到期日的 S3
下列
cp命令會將單一檔案複製到指定的儲存貯體和索引鍵,其會在指定的 ISO 8601 時間戳記到期:aws s3 cptest.txts3://amzn-s3-demo-bucket/test2.txt\ --expires2014-10-01T20:30:00Z輸出:
upload: test.txt to s3://amzn-s3-demo-bucket/test2.txt範例 3:將檔案從 S3 複製到 S3
下列
cp命令會將單一 S3 物件複製到指定的儲存貯體和索引鍵:aws s3 cps3://amzn-s3-demo-bucket/test.txts3://amzn-s3-demo-bucket/test2.txt輸出:
copy: s3://amzn-s3-demo-bucket/test.txt to s3://amzn-s3-demo-bucket/test2.txt範例 4:將 S3 物件複製到本機檔案
下列
cp命令會將單一物件複製到本機指定的檔案:aws s3 cps3://amzn-s3-demo-bucket/test.txttest2.txt輸出:
download: s3://amzn-s3-demo-bucket/test.txt to test2.txt範例 5:將 S3 物件從一個儲存貯體複製到另一個儲存貯體
下列
cp命令會將單一物件複製到指定的儲存貯體,同時保留其原始名稱:aws s3 cps3://amzn-s3-demo-bucket/test.txts3://amzn-s3-demo-bucket2/輸出:
copy: s3://amzn-s3-demo-bucket/test.txt to s3://amzn-s3-demo-bucket2/test.txt範例 6:以遞迴方式將 S3 物件複製到本機目錄
使用參數
--recursive傳遞時,下列cp命令會以遞迴方式將所有指定字首和儲存貯體下的物件,複製到指定的目錄。在此範例中,儲存貯體amzn-s3-demo-bucket具有物件test1.txt和test2.txt:aws s3 cps3://amzn-s3-demo-bucket.\ --recursive輸出:
download: s3://amzn-s3-demo-bucket/test1.txt to test1.txt download: s3://amzn-s3-demo-bucket/test2.txt to test2.txt範例 7:以遞迴方式複製本機檔案至 S3
使用參數
--recursive傳遞時,下列cp命令會以遞迴方式將指定目錄下的所有檔案複製到指定的儲存貯體和字首,同時使用--exclude參數排除某些檔案。在此範例中,目錄myDir具有檔案test1.txt和test2.jpg:aws s3 cpmyDirs3://amzn-s3-demo-bucket/\ --recursive \ --exclude"*.jpg"輸出:
upload: myDir/test1.txt to s3://amzn-s3-demo-bucket/test1.txt範例 8:以遞迴方式將 S3 物件複製到另一個儲存貯體
使用參數
--recursive傳遞時,下列cp命令會以遞迴方式將指定儲存貯體下的所有物件複製到另一個儲存貯體,同時使用--exclude參數排除某些物件。在此範例中,儲存貯體amzn-s3-demo-bucket具有物件test1.txt和another/test1.txt:aws s3 cps3://amzn-s3-demo-bucket/s3://amzn-s3-demo-bucket2/\ --recursive \ --exclude"another/*"輸出:
copy: s3://amzn-s3-demo-bucket/test1.txt to s3://amzn-s3-demo-bucket2/test1.txt您可以結合
--exclude和--include選項,只複製符合模式的物件,不包括其他所有物件:aws s3 cps3://amzn-s3-demo-bucket/logs/s3://amzn-s3-demo-bucket2/logs/\ --recursive \ --exclude"*"\ --include"*.log"輸出:
copy: s3://amzn-s3-demo-bucket/logs/test/test.log to s3://amzn-s3-demo-bucket2/logs/test/test.log copy: s3://amzn-s3-demo-bucket/logs/test3.log to s3://amzn-s3-demo-bucket2/logs/test3.log範例 9:複製 S3 物件時設定存取控制清單 (ACL)
將 ACL 設定為
cp時,下列命令會將單一物件複製到指定的儲存貯體和索引鍵public-read-write:aws s3 cps3://amzn-s3-demo-bucket/test.txts3://amzn-s3-demo-bucket/test2.txt\ --aclpublic-read-write輸出:
copy: s3://amzn-s3-demo-bucket/test.txt to s3://amzn-s3-demo-bucket/test2.txt請注意,如果您使用
--acl選項,請確保任何相關聯的 IAM 政策都包含"s3:PutObjectAcl"動作:aws iam get-user-policy \ --user-namemyuser\ --policy-namemypolicy輸出:
{ "UserName": "myuser", "PolicyName": "mypolicy", "PolicyDocument": { "Version":"2012-10-17", "Statement": [ { "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Effect": "Allow", "Sid": "Stmt1234567891234" } ] } }範例 10:授予 S3 物件許可
下列
cp命令說明使用--grants選項,將讀取存取權授予 URI 所識別的所有使用者,並完整控制其正式 ID 所識別的特定使用者:aws s3 cpfile.txts3://amzn-s3-demo-bucket/--grantsread=uri=http://acs.amazonaws.com/groups/global/AllUsersfull=id=79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be輸出:
upload: file.txt to s3://amzn-s3-demo-bucket/file.txt範例 11:將本機檔案串流上傳至 S3
PowerShell 可能會變更 CRLF 的編碼,或將其新增至管道輸入。
下列
cp命令會將本機檔案串流,從標準輸入上傳至指定的儲存貯體和索引鍵:aws s3 cp-s3://amzn-s3-demo-bucket/stream.txt範例 12:將大於 50GB 的本機檔案串流上傳至 S3
下列
cp命令會將 51GB 本機檔案串流,從標準輸入上傳至指定的儲存貯體和索引鍵。必須提供--expected-size選項,否則當達到預設部分限制 10,000 時,上傳可能會失敗:aws s3 cp-s3://amzn-s3-demo-bucket/stream.txt--expected-size54760833024範例 13:下載 S3 物件做為本機檔案串流
PowerShell 可能會變更 CRLF 的編碼,或將其新增至管道式或重新導向式輸出。
下列
cp命令會在本機將 S3 物件下載為標準輸出的串流。下載為串流目前與--recursive參數不相容:aws s3 cps3://amzn-s3-demo-bucket/stream.txt-範例 14:上傳至 S3 存取點
下列
cp命令會將單一檔案 (mydoc.txt) 上傳至金鑰 (mykey) 的存取點 (myaccesspoint):aws s3 cpmydoc.txts3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey輸出:
upload: mydoc.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey範例 15:從 S3 存取點下載
下列
cp命令會將單一物件 (mykey) 從存取點 (myaccesspoint) 下載至本機檔案 (mydoc.txt):aws s3 cps3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykeymydoc.txt輸出:
download: s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey to mydoc.txt-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 Cp
。
-
以下程式碼範例顯示如何使用 create-bucket。
- AWS CLI
-
範例 1:建立儲存貯體
下列
create-bucket範例會建立名為amzn-s3-demo-bucket的儲存貯體:aws s3api create-bucket \ --bucketamzn-s3-demo-bucket\ --regionus-east-1輸出:
{ "Location": "/amzn-s3-demo-bucket" }如需詳細資訊,請參閱《Amazon S3 使用者指南》中的建立儲存貯體。
範例 2:在擁有者強制執行的情況下建立儲存貯體
下列
create-bucket範例會建立名為amzn-s3-demo-bucket的儲存貯體,而該儲存貯體則會使用 S3 物件擁有權的儲存貯體擁有者強制執行的設定。aws s3api create-bucket \ --bucketamzn-s3-demo-bucket\ --regionus-east-1\ --object-ownershipBucketOwnerEnforced輸出:
{ "Location": "/amzn-s3-demo-bucket" }如需詳細資訊,請參閱《Amazon S3 使用者指南》中的控制物件的所有權並停用 ACL。
範例 3:在 ``us-east-1`` 區域外建立儲存貯體
下列
create-bucket範例會在eu-west-1區域中建立名為amzn-s3-demo-bucket的儲存貯體。us-east-1以外的區域需要指定適當的LocationConstraint,才能在所需區域中建立儲存貯體。aws s3api create-bucket \ --bucketamzn-s3-demo-bucket\ --regioneu-west-1\ --create-bucket-configurationLocationConstraint=eu-west-1輸出:
{ "Location": "http://amzn-s3-demo-bucket.s3.amazonaws.com/" }如需詳細資訊,請參閱《Amazon S3 使用者指南》中的建立儲存貯體。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 CreateBucket
。
-
以下程式碼範例顯示如何使用 create-multipart-upload。
- AWS CLI
-
下列命令會使用金鑰
multipart/01在儲存貯體amzn-s3-demo-bucket中建立分段上傳:aws s3api create-multipart-upload --bucketamzn-s3-demo-bucket--key 'multipart/01'輸出:
{ "Bucket": "amzn-s3-demo-bucket", "UploadId": "dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R", "Key": "multipart/01" }完成的檔案會在儲存貯體
amzn-s3-demo-bucket中名為multipart的資料夾中命名為01。儲存要與upload-part命令搭配使用的上傳 ID、金鑰和儲存貯體名稱。-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 CreateMultipartUpload
。
-
以下程式碼範例顯示如何使用 delete-bucket-analytics-configuration。
- AWS CLI
-
刪除儲存貯體的分析組態
下列
delete-bucket-analytics-configuration範例會移除指定儲存貯體和 ID 的分析組態。aws s3api delete-bucket-analytics-configuration \ --bucketamzn-s3-demo-bucket\ --id1此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteBucketAnalyticsConfiguration
。
-
以下程式碼範例顯示如何使用 delete-bucket-cors。
- AWS CLI
-
下列命令會從名為
amzn-s3-demo-bucket的儲存貯體中刪除跨來源資源共享組態:aws s3api delete-bucket-cors --bucketamzn-s3-demo-bucket-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteBucketCors
。
-
以下程式碼範例顯示如何使用 delete-bucket-encryption。
- AWS CLI
-
刪除儲存貯體的伺服器端加密組態
下列
delete-bucket-encryption範例會刪除指定儲存貯體的伺服器端加密組態。aws s3api delete-bucket-encryption \ --bucketamzn-s3-demo-bucket此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteBucketEncryption
。
-
以下程式碼範例顯示如何使用 delete-bucket-intelligent-tiering-configuration。
- AWS CLI
-
移除儲存貯體上的 S3 Intelligent-Tiering 組態
下列
delete-bucket-intelligent-tiering-configuration範例會移除儲存貯體上名為 ExampleConfig 的 S3 Intelligent-Tiering 組態。aws s3api delete-bucket-intelligent-tiering-configuration \ --bucketamzn-s3-demo-bucket\ --idExampleConfig此命令不會產生輸出。
如需詳細資訊,請參閱《Amazon S3 使用者指南》中的使用 S3 Intelligent-Tiering。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteBucketIntelligentTieringConfiguration
。
-
以下程式碼範例顯示如何使用 delete-bucket-inventory-configuration。
- AWS CLI
-
刪除儲存貯體的庫存組態
下列
delete-bucket-inventory-configuration範例會刪除具有指定儲存貯體 ID1的庫存組態。aws s3api delete-bucket-inventory-configuration \ --bucketamzn-s3-demo-bucket\ --id1此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteBucketInventoryConfiguration
。
-
以下程式碼範例顯示如何使用 delete-bucket-lifecycle。
- AWS CLI
-
下列命令會從名為
amzn-s3-demo-bucket的儲存貯體中刪除生命週期組態:aws s3api delete-bucket-lifecycle --bucketamzn-s3-demo-bucket-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteBucketLifecycle
。
-
以下程式碼範例顯示如何使用 delete-bucket-metrics-configuration。
- AWS CLI
-
刪除儲存貯體的指標組態
下列
delete-bucket-metrics-configuration範例會移除指定儲存貯體和 ID 的指標組態。aws s3api delete-bucket-metrics-configuration \ --bucketamzn-s3-demo-bucket\ --id123此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteBucketMetricsConfiguration
。
-
以下程式碼範例顯示如何使用 delete-bucket-ownership-controls。
- AWS CLI
-
移除儲存貯體的儲存貯體擁有權設定
下列
delete-bucket-ownership-controls範例會移除儲存貯體的儲存貯體擁有權設定。aws s3api delete-bucket-ownership-controls \ --bucketamzn-s3-demo-bucket此命令不會產生輸出。
如需詳細資訊,請參閱《Amazon S3 使用者指南》中的設定現有儲存貯體的物件擁有權。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteBucketOwnershipControls
。
-
以下程式碼範例顯示如何使用 delete-bucket-policy。
- AWS CLI
-
下列命令會從名為
amzn-s3-demo-bucket的儲存貯體中刪除儲存貯體政策:aws s3api delete-bucket-policy --bucketamzn-s3-demo-bucket-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteBucketPolicy
。
-
以下程式碼範例顯示如何使用 delete-bucket-replication。
- AWS CLI
-
下列命令會從名為
amzn-s3-demo-bucket的儲存貯體中刪除複寫組態:aws s3api delete-bucket-replication --bucketamzn-s3-demo-bucket-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteBucketReplication
。
-
以下程式碼範例顯示如何使用 delete-bucket-tagging。
- AWS CLI
-
下列命令會從名為
amzn-s3-demo-bucket的儲存貯體中刪除標記組態:aws s3api delete-bucket-tagging --bucketamzn-s3-demo-bucket-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteBucketTagging
。
-
以下程式碼範例顯示如何使用 delete-bucket-website。
- AWS CLI
-
下列命令會從名為
amzn-s3-demo-bucket的儲存貯體中刪除網站組態:aws s3api delete-bucket-website --bucketamzn-s3-demo-bucket-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteBucketWebsite
。
-
以下程式碼範例顯示如何使用 delete-bucket。
- AWS CLI
-
下列命令會刪除一個名為
amzn-s3-demo-bucket的儲存貯體:aws s3api delete-bucket --bucketamzn-s3-demo-bucket--regionus-east-1-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteBucket
。
-
以下程式碼範例顯示如何使用 delete-object-tagging。
- AWS CLI
-
刪除物件的標籤集
下列
delete-object-tagging範例會從物件doc1.rtf刪除具有指定索引鍵的標籤。aws s3api delete-object-tagging \ --bucketamzn-s3-demo-bucket\ --keydoc1.rtf此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteObjectTagging
。
-
以下程式碼範例顯示如何使用 delete-object。
- AWS CLI
-
下列命令會將名為
test.txt的物件從名為amzn-s3-demo-bucket的儲存貯體中刪除。aws s3api delete-object --bucketamzn-s3-demo-bucket--keytest.txt如果已啟用儲存貯體版本控制,輸出將包含刪除標記的版本 ID:
{ "VersionId": "9_gKg5vG56F.TTEUdwkxGpJ3tNDlWlGq", "DeleteMarker": true }如需刪除物件的詳細資訊,請參閱《Amazon S3 開發人員指南》中的「刪除物件」。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteObject
。
-
以下程式碼範例顯示如何使用 delete-objects。
- AWS CLI
-
下列命令會將從名為
amzn-s3-demo-bucket的儲存貯體中刪除物件。aws s3api delete-objects --bucketamzn-s3-demo-bucket--deletefile://delete.jsondelete.json是目前目錄中的 JSON 文件,其會指定要刪除的物件:{ "Objects": [ { "Key": "test1.txt" } ], "Quiet": false }輸出:
{ "Deleted": [ { "DeleteMarkerVersionId": "mYAT5Mc6F7aeUL8SS7FAAqUPO1koHwzU", "Key": "test1.txt", "DeleteMarker": true } ] }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteObjects
。
-
以下程式碼範例顯示如何使用 delete-public-access-block。
- AWS CLI
-
刪除儲存貯體的封鎖公開存取組態
下列
delete-public-access-block範例會移除指定儲存貯體上的封鎖公開存取組態。aws s3api delete-public-access-block \ --bucketamzn-s3-demo-bucket此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeletePublicAccessBlock
。
-
以下程式碼範例顯示如何使用 get-bucket-accelerate-configuration。
- AWS CLI
-
擷取儲存貯體的加速組態
下列
get-bucket-accelerate-configuration範例會擷取指定儲存貯體的加速組態。aws s3api get-bucket-accelerate-configuration \ --bucketamzn-s3-demo-bucket輸出:
{ "Status": "Enabled" }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketAccelerateConfiguration
。
-
以下程式碼範例顯示如何使用 get-bucket-acl。
- AWS CLI
-
下列命令會擷取名為
amzn-s3-demo-bucket之儲存貯體的存取控制清單:aws s3api get-bucket-acl --bucketamzn-s3-demo-bucket輸出:
{ "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32" }, "Grants": [ { "Grantee": { "DisplayName": "my-username", "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32" }, "Permission": "FULL_CONTROL" } ] }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketAcl
。
-
以下程式碼範例顯示如何使用 get-bucket-analytics-configuration。
- AWS CLI
-
擷取具有特定 ID 之儲存貯體的分析組態
下列
get-bucket-analytics-configuration範例顯示指定儲存貯體和 ID 的分析組態。aws s3api get-bucket-analytics-configuration \ --bucketamzn-s3-demo-bucket\ --id1輸出:
{ "AnalyticsConfiguration": { "StorageClassAnalysis": {}, "Id": "1" } }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketAnalyticsConfiguration
。
-
以下程式碼範例顯示如何使用 get-bucket-cors。
- AWS CLI
-
下列命令會擷取名為
amzn-s3-demo-bucket之儲存貯體的跨來源資源共享組態:aws s3api get-bucket-cors --bucketamzn-s3-demo-bucket輸出:
{ "CORSRules": [ { "AllowedHeaders": [ "*" ], "ExposeHeaders": [ "x-amz-server-side-encryption" ], "AllowedMethods": [ "PUT", "POST", "DELETE" ], "MaxAgeSeconds": 3000, "AllowedOrigins": [ "http://www.example.com" ] }, { "AllowedHeaders": [ "Authorization" ], "MaxAgeSeconds": 3000, "AllowedMethods": [ "GET" ], "AllowedOrigins": [ "*" ] } ] }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketCors
。
-
以下程式碼範例顯示如何使用 get-bucket-encryption。
- AWS CLI
-
擷取儲存貯體的伺服器端加密組態
下列
get-bucket-encryption範例會擷取儲存貯體amzn-s3-demo-bucket的伺服器端加密組態。aws s3api get-bucket-encryption \ --bucketamzn-s3-demo-bucket輸出:
{ "ServerSideEncryptionConfiguration": { "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" } } ] } }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketEncryption
。
-
以下程式碼範例顯示如何使用 get-bucket-intelligent-tiering-configuration。
- AWS CLI
-
擷取儲存貯體上的 S3 Intelligent-Tiering 組態
下列
get-bucket-intelligent-tiering-configuration範例會在儲存貯體上擷取名為 ExampleConfig 的 S3 Intelligent-Tiering 組態。aws s3api get-bucket-intelligent-tiering-configuration \ --bucketamzn-s3-demo-bucket\ --idExampleConfig輸出:
{ "IntelligentTieringConfiguration": { "Id": "ExampleConfig2", "Filter": { "Prefix": "images" }, "Status": "Enabled", "Tierings": [ { "Days": 90, "AccessTier": "ARCHIVE_ACCESS" }, { "Days": 180, "AccessTier": "DEEP_ARCHIVE_ACCESS" } ] } }如需詳細資訊,請參閱《Amazon S3 使用者指南》中的使用 S3 Intelligent-Tiering。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketIntelligentTieringConfiguration
。
-
以下程式碼範例顯示如何使用 get-bucket-inventory-configuration。
- AWS CLI
-
擷取儲存貯體的庫存組態
下列
get-bucket-inventory-configuration範例會擷取 ID 為1之指定儲存貯體的庫存組態。aws s3api get-bucket-inventory-configuration \ --bucketamzn-s3-demo-bucket\ --id1輸出:
{ "InventoryConfiguration": { "IsEnabled": true, "Destination": { "S3BucketDestination": { "Format": "ORC", "Bucket": "arn:aws:s3:::amzn-s3-demo-bucket", "AccountId": "123456789012" } }, "IncludedObjectVersions": "Current", "Id": "1", "Schedule": { "Frequency": "Weekly" } } }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketInventoryConfiguration
。
-
以下程式碼範例顯示如何使用 get-bucket-lifecycle-configuration。
- AWS CLI
-
下列命令會擷取名為
amzn-s3-demo-bucket之儲存貯體的生命週期組態:aws s3api get-bucket-lifecycle-configuration --bucketamzn-s3-demo-bucket輸出:
{ "Rules": [ { "ID": "Move rotated logs to Glacier", "Prefix": "rotated/", "Status": "Enabled", "Transitions": [ { "Date": "2015-11-10T00:00:00.000Z", "StorageClass": "GLACIER" } ] }, { "Status": "Enabled", "Prefix": "", "NoncurrentVersionTransitions": [ { "NoncurrentDays": 0, "StorageClass": "GLACIER" } ], "ID": "Move old versions to Glacier" } ] }-
如需 API 詳細資訊,請參閱《AWS CLI API 參考》中的 GetBucketLifecycleConfiguration
。
-
以下程式碼範例顯示如何使用 get-bucket-lifecycle。
- AWS CLI
-
下列命令會擷取名為
amzn-s3-demo-bucket之儲存貯體的生命週期組態:aws s3api get-bucket-lifecycle --bucketamzn-s3-demo-bucket輸出:
{ "Rules": [ { "ID": "Move to Glacier after sixty days (objects in logs/2015/)", "Prefix": "logs/2015/", "Status": "Enabled", "Transition": { "Days": 60, "StorageClass": "GLACIER" } }, { "Expiration": { "Date": "2016-01-01T00:00:00.000Z" }, "ID": "Delete 2014 logs in 2016.", "Prefix": "logs/2014/", "Status": "Enabled" } ] }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketLifecycle
。
-
以下程式碼範例顯示如何使用 get-bucket-location。
- AWS CLI
-
如果存在限制,下列命令會擷取名為
amzn-s3-demo-bucket之儲存貯體的位置限制條件:aws s3api get-bucket-location --bucketamzn-s3-demo-bucket輸出:
{ "LocationConstraint": "us-west-2" }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketLocation
。
-
以下程式碼範例顯示如何使用 get-bucket-logging。
- AWS CLI
-
擷取儲存貯體的記錄狀態
下列
get-bucket-logging範例會擷取指定儲存貯體的記錄狀態。aws s3api get-bucket-logging \ --bucketamzn-s3-demo-bucket輸出:
{ "LoggingEnabled": { "TargetPrefix": "", "TargetBucket": "amzn-s3-demo-bucket-logs" } }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketLogging
。
-
以下程式碼範例顯示如何使用 get-bucket-metrics-configuration。
- AWS CLI
-
擷取具有特定 ID 之儲存貯體的指標組態
下列
get-bucket-metrics-configuration範例顯示指定儲存貯體和 ID 的指標組態。aws s3api get-bucket-metrics-configuration \ --bucketamzn-s3-demo-bucket\ --id123輸出:
{ "MetricsConfiguration": { "Filter": { "Prefix": "logs" }, "Id": "123" } }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketMetricsConfiguration
。
-
以下程式碼範例顯示如何使用 get-bucket-notification-configuration。
- AWS CLI
-
下列命令會擷取名為
amzn-s3-demo-bucket之儲存貯體的通知組態:aws s3api get-bucket-notification-configuration --bucketamzn-s3-demo-bucket輸出:
{ "TopicConfigurations": [ { "Id": "YmQzMmEwM2EjZWVlI0NGItNzVtZjI1MC00ZjgyLWZDBiZWNl", "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-notification-topic", "Events": [ "s3:ObjectCreated:*" ] } ] }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketNotificationConfiguration
。
-
以下程式碼範例顯示如何使用 get-bucket-notification。
- AWS CLI
-
下列命令會擷取名為
amzn-s3-demo-bucket之儲存貯體的通知組態:aws s3api get-bucket-notification --bucketamzn-s3-demo-bucket輸出:
{ "TopicConfiguration": { "Topic": "arn:aws:sns:us-west-2:123456789012:my-notification-topic", "Id": "YmQzMmEwM2EjZWVlI0NGItNzVtZjI1MC00ZjgyLWZDBiZWNl", "Event": "s3:ObjectCreated:*", "Events": [ "s3:ObjectCreated:*" ] } }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketNotification
。
-
以下程式碼範例顯示如何使用 get-bucket-ownership-controls。
- AWS CLI
-
擷取儲存貯體的儲存貯體擁有權設定
下列
get-bucket-ownership-controls範例會擷取儲存貯體的儲存貯體擁有權設定。aws s3api get-bucket-ownership-controls \ --bucketamzn-s3-demo-bucket輸出:
{ "OwnershipControls": { "Rules": [ { "ObjectOwnership": "BucketOwnerEnforced" } ] } }如需詳細資訊,請參閱《Amazon S3 使用者指南》中的檢視 S3 儲存貯體的物件擁有權設定。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketOwnershipControls
。
-
以下程式碼範例顯示如何使用 get-bucket-policy-status。
- AWS CLI
-
擷取儲存貯體的政策狀態以指出儲存貯體是否為公有
下列
get-bucket-policy-status範例會擷取儲存貯體amzn-s3-demo-bucket的政策狀態。aws s3api get-bucket-policy-status \ --bucketamzn-s3-demo-bucket輸出:
{ "PolicyStatus": { "IsPublic": false } }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketPolicyStatus
。
-
以下程式碼範例顯示如何使用 get-bucket-policy。
- AWS CLI
-
下列命令會擷取名為
amzn-s3-demo-bucket之儲存貯體的儲存貯體政策:aws s3api get-bucket-policy --bucketamzn-s3-demo-bucket輸出:
{ "Policy": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::amzn-s3-demo-bucket/*\"},{\"Sid\":\"\",\"Effect\":\"Deny\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::amzn-s3-demo-bucket/secret/*\"}]}" }取得並放置儲存貯體政策。下列範例示範如何下載 Amazon S3 儲存貯體政策、修改檔案,然後使用
put-bucket-policy套用修改過的儲存貯體政策。若要將儲存貯體政策下載至檔案,您可以執行:aws s3api get-bucket-policy --bucket amzn-s3-demo-bucket --query Policy --output text > policy.json然後視需要修改
policy.json檔案。最後,您可以執行下列動作,將此修改後的政策套用回 S3 儲存貯體:policy.json檔案 (視需要)。最後,您可以執行下列動作,將此修改後的政策套用回 S3 儲存貯體:檔案 (視需要)。最後,您可以執行下列動作,將此修改後的政策套用回 S3 儲存貯體:
aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file://policy.json-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketPolicy
。
-
以下程式碼範例顯示如何使用 get-bucket-replication。
- AWS CLI
-
下列命令會擷取名為
amzn-s3-demo-bucket之儲存貯體的複寫組態:aws s3api get-bucket-replication --bucketamzn-s3-demo-bucket輸出:
{ "ReplicationConfiguration": { "Rules": [ { "Status": "Enabled", "Prefix": "", "Destination": { "Bucket": "arn:aws:s3:::amzn-s3-demo-bucket-backup", "StorageClass": "STANDARD" }, "ID": "ZmUwNzE4ZmQ4tMjVhOS00MTlkLOGI4NDkzZTIWJjNTUtYTA1" } ], "Role": "arn:aws:iam::123456789012:role/s3-replication-role" } }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketReplication
。
-
以下程式碼範例顯示如何使用 get-bucket-request-payment。
- AWS CLI
-
擷取儲存貯體的請求付款組態
下列
get-bucket-request-payment範例會擷取請求者支付指定儲存貯體的組態。aws s3api get-bucket-request-payment \ --bucketamzn-s3-demo-bucket輸出:
{ "Payer": "BucketOwner" }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketRequestPayment
。
-
以下程式碼範例顯示如何使用 get-bucket-tagging。
- AWS CLI
-
下列命令會擷取名為
amzn-s3-demo-bucket之儲存貯體的標記組態:aws s3api get-bucket-tagging --bucketamzn-s3-demo-bucket輸出:
{ "TagSet": [ { "Value": "marketing", "Key": "organization" } ] }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketTagging
。
-
以下程式碼範例顯示如何使用 get-bucket-versioning。
- AWS CLI
-
下列命令會擷取名為
amzn-s3-demo-bucket之儲存貯體的版本控制組態:aws s3api get-bucket-versioning --bucketamzn-s3-demo-bucket輸出:
{ "Status": "Enabled" }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketVersioning
。
-
以下程式碼範例顯示如何使用 get-bucket-website。
- AWS CLI
-
下列命令會擷取名為
amzn-s3-demo-bucket之儲存貯體的靜態網站組態:aws s3api get-bucket-website --bucketamzn-s3-demo-bucket輸出:
{ "IndexDocument": { "Suffix": "index.html" }, "ErrorDocument": { "Key": "error.html" } }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetBucketWebsite
。
-
以下程式碼範例顯示如何使用 get-object-acl。
- AWS CLI
-
下列命令會擷取名為
amzn-s3-demo-bucket之儲存貯體中物件的存取控制清單:aws s3api get-object-acl --bucketamzn-s3-demo-bucket--keyindex.html輸出:
{ "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32" }, "Grants": [ { "Grantee": { "DisplayName": "my-username", "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "URI": "http://acs.amazonaws.com/groups/global/AllUsers" }, "Permission": "READ" } ] }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetObjectAcl
。
-
以下程式碼範例顯示如何使用 get-object-attributes。
- AWS CLI
-
從物件擷取中繼資料而不傳回物件本身
下列
get-object-attributes範例會從物件doc1.rtf擷取中繼資料。aws s3api get-object-attributes \ --bucketamzn-s3-demo-bucket\ --keydoc1.rtf\ --object-attributes"StorageClass""ETag""ObjectSize"輸出:
{ "LastModified": "2022-03-15T19:37:31+00:00", "VersionId": "IuCPjXTDzHNfldAuitVBIKJpF2p1fg4P", "ETag": "b662d79adeb7c8d787ea7eafb9ef6207", "StorageClass": "STANDARD", "ObjectSize": 405 }如需詳細資訊,請參閱《Amazon S3 API 參考》中的 GetObjectAttributes。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetObjectAttributes
。
-
以下程式碼範例顯示如何使用 get-object-legal-hold。
- AWS CLI
-
擷取物件的法務保存狀態
下列
get-object-legal-hold範例會擷取指定物件的法務保存狀態。aws s3api get-object-legal-hold \ --bucketamzn-s3-demo-bucket-with-object-lock\ --keydoc1.rtf輸出:
{ "LegalHold": { "Status": "ON" } }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetObjectLegalHold
。
-
以下程式碼範例顯示如何使用 get-object-lock-configuration。
- AWS CLI
-
擷取儲存貯體的物件鎖定組態
下列
get-object-lock-configuration範例會擷取指定儲存貯體的物件鎖定組態。aws s3api get-object-lock-configuration \ --bucketamzn-s3-demo-bucket-with-object-lock輸出:
{ "ObjectLockConfiguration": { "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 } } } }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetObjectLockConfiguration
。
-
以下程式碼範例顯示如何使用 get-object-retention。
- AWS CLI
-
擷取物件的物件保留組態
下列
get-object-retention範例會擷取指定物件的物件保留組態。aws s3api get-object-retention \ --bucketamzn-s3-demo-bucket-with-object-lock\ --keydoc1.rtf輸出:
{ "Retention": { "Mode": "GOVERNANCE", "RetainUntilDate": "2025-01-01T00:00:00.000Z" } }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetObjectRetention
。
-
以下程式碼範例顯示如何使用 get-object-tagging。
- AWS CLI
-
擷取連接至物件的標籤
下列
get-object-tagging範例會從指定的物件擷取指定的索引鍵值。aws s3api get-object-tagging \ --bucketamzn-s3-demo-bucket\ --keydoc1.rtf輸出:
{ "TagSet": [ { "Value": "confidential", "Key": "designation" } ] }下列
get-object-tagging範例會嘗試擷取沒有標籤之物件doc2.rtf的標籤集。aws s3api get-object-tagging \ --bucketamzn-s3-demo-bucket\ --keydoc2.rtf輸出:
{ "TagSet": [] }下列
get-object-tagging範例會擷取具有多個標籤之物件doc3.rtf的標籤集。aws s3api get-object-tagging \ --bucketamzn-s3-demo-bucket\ --keydoc3.rtf輸出:
{ "TagSet": [ { "Value": "confidential", "Key": "designation" }, { "Value": "finance", "Key": "department" }, { "Value": "payroll", "Key": "team" } ] }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetObjectTagging
。
-
以下程式碼範例顯示如何使用 get-object-torrent。
- AWS CLI
-
下列命令會為名為
amzn-s3-demo-bucket的儲存貯體中的物件建立 torrent:aws s3api get-object-torrent --bucketamzn-s3-demo-bucket--keylarge-video-file.mp4large-video-file.torrentTorrent 檔案會儲存在本機的目前資料夾中。請注意,輸出檔案名稱 (
large-video-file.torrent) 是在沒有選項名稱的情況下指定,且必須是命令中的最後一個引數。-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetObjectTorrent
。
-
以下程式碼範例顯示如何使用 get-object。
- AWS CLI
-
下列範例使用
get-object命令,從 Amazon S3 下載物件。aws s3api get-object --buckettext-content--keydir/my_images.tar.bz2my_images.tar.bz2請注意,outfile 參數是在沒有選項名稱的情況下指定,例如 "--outfile"。輸出檔案名稱必須是命令中的最後一個參數。
下列範例展示如何使用
--range從物件下載特定位元組範圍。請注意,位元組範圍必須以「bytes=」開頭:aws s3api get-object --buckettext-content--keydir/my_data--rangebytes=8888-9999my_data_range如需擷取物件的詳細資訊,請參閱《Amazon S3 開發人員指南》中的「取得物件」。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetObject
。
-
以下程式碼範例顯示如何使用 get-public-access-block。
- AWS CLI
-
設定或修改儲存貯體的封鎖公開存取組態
下列
get-public-access-block範例顯示指定儲存貯體的封鎖公開存取組態。aws s3api get-public-access-block \ --bucketamzn-s3-demo-bucket輸出:
{ "PublicAccessBlockConfiguration": { "IgnorePublicAcls": true, "BlockPublicPolicy": true, "BlockPublicAcls": true, "RestrictPublicBuckets": true } }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetPublicAccessBlock
。
-
以下程式碼範例顯示如何使用 head-bucket。
- AWS CLI
-
下列命令會驗證對名為
amzn-s3-demo-bucket之儲存貯體的存取:aws s3api head-bucket --bucketamzn-s3-demo-bucket如果儲存貯體存在,且您有其存取權,則不會傳回任何輸出。否則,會顯示錯誤訊息。例如:
A client error (404) occurred when calling the HeadBucket operation: Not Found-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 HeadBucket
。
-
以下程式碼範例顯示如何使用 head-object。
- AWS CLI
-
下列命令會擷取名為
amzn-s3-demo-bucket之儲存貯體中物件的中繼資料:aws s3api head-object --bucketamzn-s3-demo-bucket--keyindex.html輸出:
{ "AcceptRanges": "bytes", "ContentType": "text/html", "LastModified": "Thu, 16 Apr 2015 18:19:14 GMT", "ContentLength": 77, "VersionId": "null", "ETag": "\"30a6ec7e1a9ad79c203d05a589c8b400\"", "Metadata": {} }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 HeadObject
。
-
以下程式碼範例顯示如何使用 list-bucket-analytics-configurations。
- AWS CLI
-
擷取儲存貯體的分析組態清單
下列
list-bucket-analytics-configurations會擷取指定儲存貯體的分析組態清單。aws s3api list-bucket-analytics-configurations \ --bucketamzn-s3-demo-bucket輸出:
{ "AnalyticsConfigurationList": [ { "StorageClassAnalysis": {}, "Id": "1" } ], "IsTruncated": false }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListBucketAnalyticsConfigurations
。
-
以下程式碼範例顯示如何使用 list-bucket-intelligent-tiering-configurations。
- AWS CLI
-
擷取儲存貯體上的所有 S3 Intelligent-Tiering 組態
下列
list-bucket-intelligent-tiering-configurations範例會擷取儲存貯體上的所有 S3 Intelligent-Tiering 組態。aws s3api list-bucket-intelligent-tiering-configurations \ --bucketamzn-s3-demo-bucket輸出:
{ "IsTruncated": false, "IntelligentTieringConfigurationList": [ { "Id": "ExampleConfig", "Filter": { "Prefix": "images" }, "Status": "Enabled", "Tierings": [ { "Days": 90, "AccessTier": "ARCHIVE_ACCESS" }, { "Days": 180, "AccessTier": "DEEP_ARCHIVE_ACCESS" } ] }, { "Id": "ExampleConfig2", "Status": "Disabled", "Tierings": [ { "Days": 730, "AccessTier": "ARCHIVE_ACCESS" } ] }, { "Id": "ExampleConfig3", "Filter": { "Tag": { "Key": "documents", "Value": "taxes" } }, "Status": "Enabled", "Tierings": [ { "Days": 90, "AccessTier": "ARCHIVE_ACCESS" }, { "Days": 365, "AccessTier": "DEEP_ARCHIVE_ACCESS" } ] } ] }如需詳細資訊,請參閱《Amazon S3 使用者指南》中的使用 S3 Intelligent-Tiering。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListBucketIntelligentTieringConfigurations
。
-
以下程式碼範例顯示如何使用 list-bucket-inventory-configurations。
- AWS CLI
-
擷取儲存貯體的庫存組態清單
下列
list-bucket-inventory-configurations範例列出指定儲存貯體的庫存組態。aws s3api list-bucket-inventory-configurations \ --bucketamzn-s3-demo-bucket輸出:
{ "InventoryConfigurationList": [ { "IsEnabled": true, "Destination": { "S3BucketDestination": { "Format": "ORC", "Bucket": "arn:aws:s3:::amzn-s3-demo-bucket", "AccountId": "123456789012" } }, "IncludedObjectVersions": "Current", "Id": "1", "Schedule": { "Frequency": "Weekly" } }, { "IsEnabled": true, "Destination": { "S3BucketDestination": { "Format": "CSV", "Bucket": "arn:aws:s3:::amzn-s3-demo-bucket", "AccountId": "123456789012" } }, "IncludedObjectVersions": "Current", "Id": "2", "Schedule": { "Frequency": "Daily" } } ], "IsTruncated": false }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListBucketInventoryConfigurations
。
-
以下程式碼範例顯示如何使用 list-bucket-metrics-configurations。
- AWS CLI
-
擷取儲存貯體的指標組態清單
下列
list-bucket-metrics-configurations範例會擷取指定儲存貯體的指標組態清單。aws s3api list-bucket-metrics-configurations \ --bucketamzn-s3-demo-bucket輸出:
{ "IsTruncated": false, "MetricsConfigurationList": [ { "Filter": { "Prefix": "logs" }, "Id": "123" }, { "Filter": { "Prefix": "tmp" }, "Id": "234" } ] }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListBucketMetricsConfigurations
。
-
以下程式碼範例顯示如何使用 list-buckets。
- AWS CLI
-
下列命令會使用
list-buckets命令來顯示所有 Amazon S3 儲存貯體的名稱 (跨所有區域):aws s3api list-buckets --query"Buckets[].Name"查詢選項會將
list-buckets的輸出向下篩選出僅儲存貯體名稱。如需儲存貯體的詳細資訊,請參閱《Amazon S3 開發人員指南》中的「使用 Amazon S3 儲存貯體」。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListBuckets
。
-
以下程式碼範例顯示如何使用 list-multipart-uploads。
- AWS CLI
-
下列命令會列出名為
amzn-s3-demo-bucket之儲存貯體的所有作用中分段上傳:aws s3api list-multipart-uploads --bucketamzn-s3-demo-bucket輸出:
{ "Uploads": [ { "Initiator": { "DisplayName": "username", "ID": "arn:aws:iam::0123456789012:user/username" }, "Initiated": "2015-06-02T18:01:30.000Z", "UploadId": "dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R", "StorageClass": "STANDARD", "Key": "multipart/01", "Owner": { "DisplayName": "aws-account-name", "ID": "100719349fc3b6dcd7c820a124bf7aecd408092c3d7b51b38494939801fc248b" } } ], "CommonPrefixes": [] }進行中的分段上傳會在 Amazon S3 中產生儲存成本。完成或中止作用中的分段上傳,以從您的帳戶中移除該部分。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListMultipartUploads
。
-
以下程式碼範例顯示如何使用 list-object-versions。
- AWS CLI
-
下列命令會擷取名為
amzn-s3-demo-bucket之儲存貯體中物件的版本資訊:aws s3api list-object-versions --bucketamzn-s3-demo-bucket--prefixindex.html輸出:
{ "DeleteMarkers": [ { "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd660687538875e7c86c5b672fe116bd438f46db45460ddcd036c32" }, "IsLatest": true, "VersionId": "B2VsEK5saUNNHKcOAJj7hIE86RozToyq", "Key": "index.html", "LastModified": "2015-11-10T00:57:03.000Z" }, { "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd660687538875e7c86c5b672fe116bd438f46db45460ddcd036c32" }, "IsLatest": false, "VersionId": ".FLQEZscLIcfxSq.jsFJ.szUkmng2Yw6", "Key": "index.html", "LastModified": "2015-11-09T23:32:20.000Z" } ], "Versions": [ { "LastModified": "2015-11-10T00:20:11.000Z", "VersionId": "Rb_l2T8UHDkFEwCgJjhlgPOZC0qJ.vpD", "ETag": "\"0622528de826c0df5db1258a23b80be5\"", "StorageClass": "STANDARD", "Key": "index.html", "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd660687538875e7c86c5b672fe116bd438f46db45460ddcd036c32" }, "IsLatest": false, "Size": 38 }, { "LastModified": "2015-11-09T23:26:41.000Z", "VersionId": "rasWWGpgk9E4s0LyTJgusGeRQKLVIAFf", "ETag": "\"06225825b8028de826c0df5db1a23be5\"", "StorageClass": "STANDARD", "Key": "index.html", "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd660687538875e7c86c5b672fe116bd438f46db45460ddcd036c32" }, "IsLatest": false, "Size": 38 }, { "LastModified": "2015-11-09T22:50:50.000Z", "VersionId": "null", "ETag": "\"d1f45267a863c8392e07d24dd592f1b9\"", "StorageClass": "STANDARD", "Key": "index.html", "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd660687538875e7c86c5b672fe116bd438f46db45460ddcd036c32" }, "IsLatest": false, "Size": 533823 } ] }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListObjectVersions
。
-
以下程式碼範例顯示如何使用 list-objects-v2。
- AWS CLI
-
取得儲存貯體中的物件清單
下列
list-objects-v2範例會列出指定儲存貯體中的物件。aws s3api list-objects-v2 \ --bucketamzn-s3-demo-bucket輸出:
{ "Contents": [ { "LastModified": "2019-11-05T23:11:50.000Z", "ETag": "\"621503c373607d548b37cff8778d992c\"", "StorageClass": "STANDARD", "Key": "doc1.rtf", "Size": 391 }, { "LastModified": "2019-11-05T23:11:50.000Z", "ETag": "\"a2cecc36ab7c7fe3a71a273b9d45b1b5\"", "StorageClass": "STANDARD", "Key": "doc2.rtf", "Size": 373 }, { "LastModified": "2019-11-05T23:11:50.000Z", "ETag": "\"08210852f65a2e9cb999972539a64d68\"", "StorageClass": "STANDARD", "Key": "doc3.rtf", "Size": 399 }, { "LastModified": "2019-11-05T23:11:50.000Z", "ETag": "\"d1852dd683f404306569471af106988e\"", "StorageClass": "STANDARD", "Key": "doc4.rtf", "Size": 6225 } ] }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListObjectsV2
。
-
以下程式碼範例顯示如何使用 list-objects。
- AWS CLI
-
下列範例使用
list-objects命令來顯示指定儲存貯體中所有物件的名稱:aws s3api list-objects --buckettext-content--query 'Contents[].{Key: Key, Size: Size}'此範例使用
--query引數,將list-objects的輸出篩選為每個物件的金鑰值和大小如需物件的詳細資訊,請參閱《Amazon S3 開發人員指南》中的使用 Amazon S3 物件。
-
如需 API 詳細資訊,請參閱《AWS CLI API 參考》中的 ListObjects
。
-
以下程式碼範例顯示如何使用 list-parts。
- AWS CLI
-
下列命令會列出在儲存貯體
amzn-s3-demo-bucket中使用索引鍵multipart/01上傳分段上傳的所有部分:aws s3api list-parts --bucketamzn-s3-demo-bucket--key 'multipart/01' --upload-iddfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R輸出:
{ "Owner": { "DisplayName": "aws-account-name", "ID": "100719349fc3b6dcd7c820a124bf7aecd408092c3d7b51b38494939801fc248b" }, "Initiator": { "DisplayName": "username", "ID": "arn:aws:iam::0123456789012:user/username" }, "Parts": [ { "LastModified": "2015-06-02T18:07:35.000Z", "PartNumber": 1, "ETag": "\"e868e0f4719e394144ef36531ee6824c\"", "Size": 5242880 }, { "LastModified": "2015-06-02T18:07:42.000Z", "PartNumber": 2, "ETag": "\"6bb2b12753d66fe86da4998aa33fffb0\"", "Size": 5242880 }, { "LastModified": "2015-06-02T18:07:47.000Z", "PartNumber": 3, "ETag": "\"d0a0112e841abec9c9ec83406f0159c8\"", "Size": 5242880 } ], "StorageClass": "STANDARD" }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListParts
。
-
以下程式碼範例顯示如何使用 ls。
- AWS CLI
-
範例 1:列出所有使用者擁有的儲存貯體
下列
ls命令會列出使用者擁有的所有儲存貯體。在此範例中,使用者擁有儲存貯體amzn-s3-demo-bucket和amzn-s3-demo-bucket2。時間戳記是建立儲存貯體的日期,其顯示在機器的時區中。此日期可能會在變更儲存貯體時變更,例如編輯其儲存貯體政策。請注意,如果將s3://用於路徑引數<S3Uri>,其中也會列出所有儲存貯體。aws s3 ls輸出:
2013-07-11 17:08:50 amzn-s3-demo-bucket 2013-07-24 14:55:44 amzn-s3-demo-bucket2範例 2:列出儲存貯體中的所有字首和物件
下列
ls命令會列出指定儲存貯體和字首下的物件和常見字首。在此範例中,使用者擁有具有物件test.txt和somePrefix/test.txt的儲存貯體amzn-s3-demo-bucket。LastWriteTime和Length是任意項。請注意,由於ls命令與本機檔案系統沒有互動,因此不需要s3://URI 結構描述來解決模棱兩可的情況,而且可以省略。aws s3 lss3://amzn-s3-demo-bucket輸出:
PRE somePrefix/ 2013-07-25 17:06:27 88 test.txt範例 3:列出特定儲存貯體和字首中的所有字首和物件
下列
ls命令會列出指定儲存貯體和字首下的物件和常見字首。不過,指定的儲存貯體和字首下沒有物件或常見字首。aws s3 lss3://amzn-s3-demo-bucket/noExistPrefix輸出:
None範例 4:遞迴列出儲存貯體中的所有字首和物件
下列
ls命令會遞迴列出儲存貯體中的物件。儲存貯體中的所有內容都會依序列出,而不是在輸出中顯示PRE dirname/。aws s3 lss3://amzn-s3-demo-bucket\ --recursive輸出:
2013-09-02 21:37:53 10 a.txt 2013-09-02 21:37:53 2863288 foo.zip 2013-09-02 21:32:57 23 foo/bar/.baz/a 2013-09-02 21:32:58 41 foo/bar/.baz/b 2013-09-02 21:32:57 281 foo/bar/.baz/c 2013-09-02 21:32:57 73 foo/bar/.baz/d 2013-09-02 21:32:57 452 foo/bar/.baz/e 2013-09-02 21:32:57 896 foo/bar/.baz/hooks/bar 2013-09-02 21:32:57 189 foo/bar/.baz/hooks/foo 2013-09-02 21:32:57 398 z.txt範例 5:摘要儲存貯體中的所有字首和物件
下列
ls命令展示使用 --human-readable 和 --summarize 選項的相同命令。--human-readable 會以 Bytes/MiB/KiB/GiB/TiB/PiB/EiB 顯示檔案大小。--summarize 會在結果清單結尾顯示物件總數和大小總計:aws s3 lss3://amzn-s3-demo-bucket\ --recursive \ --human-readable \ --summarize輸出:
2013-09-02 21:37:53 10 Bytes a.txt 2013-09-02 21:37:53 2.9 MiB foo.zip 2013-09-02 21:32:57 23 Bytes foo/bar/.baz/a 2013-09-02 21:32:58 41 Bytes foo/bar/.baz/b 2013-09-02 21:32:57 281 Bytes foo/bar/.baz/c 2013-09-02 21:32:57 73 Bytes foo/bar/.baz/d 2013-09-02 21:32:57 452 Bytes foo/bar/.baz/e 2013-09-02 21:32:57 896 Bytes foo/bar/.baz/hooks/bar 2013-09-02 21:32:57 189 Bytes foo/bar/.baz/hooks/foo 2013-09-02 21:32:57 398 Bytes z.txt Total Objects: 10 Total Size: 2.9 MiB範例 6:從 S3 存取點列出
下列
ls命令會列出來自存取點 (myaccesspoint) 的物件:aws s3 lss3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/輸出:
PRE somePrefix/ 2013-07-25 17:06:27 88 test.txt-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 Ls
。
-
以下程式碼範例顯示如何使用 mb。
- AWS CLI
-
範例 1:建立儲存貯體
下列
mb命令會建立儲存貯體。在此範例中,使用者會使儲存貯體成為amzn-s3-demo-bucket。系統會在使用者組態檔中指定的區域中建立儲存貯體:aws s3 mbs3://amzn-s3-demo-bucket輸出:
make_bucket: s3://amzn-s3-demo-bucket範例 2:在指定區域中建立儲存貯體
下列
mb命令會在--region參數指定的區域中建立儲存貯體。在此範例中,使用者在區域us-west-1中將使儲存貯體成為amzn-s3-demo-bucket:aws s3 mbs3://amzn-s3-demo-bucket\ --regionus-west-1輸出:
make_bucket: s3://amzn-s3-demo-bucket-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 Mb
。
-
以下程式碼範例顯示如何使用 mv。
- AWS CLI
-
範例 1:將本機檔案移至指定的儲存貯體
下列
mv命令會將單一檔案移至指定的儲存貯體和索引鍵。aws s3 mvtest.txts3://amzn-s3-demo-bucket/test2.txt輸出:
move: test.txt to s3://amzn-s3-demo-bucket/test2.txt範例 2:將物件移至指定的儲存貯體和索引鍵
下列
mv命令會將單一 S3 物件移至指定的儲存貯體和索引鍵。aws s3 mvs3://amzn-s3-demo-bucket/test.txts3://amzn-s3-demo-bucket/test2.txt輸出:
move: s3://amzn-s3-demo-bucket/test.txt to s3://amzn-s3-demo-bucket/test2.txt範例 3:將 S3 物件移至本機目錄
下列
mv命令會將單一物件移至本機指定的檔案。aws s3 mvs3://amzn-s3-demo-bucket/test.txttest2.txt輸出:
move: s3://amzn-s3-demo-bucket/test.txt to test2.txt範例 4:將具有原始名稱的物件移至指定的儲存貯體
下列
mv命令會將單一物件移至指定的儲存貯體,同時保留其原始名稱:aws s3 mvs3://amzn-s3-demo-bucket/test.txts3://amzn-s3-demo-bucket2/輸出:
move: s3://amzn-s3-demo-bucket/test.txt to s3://amzn-s3-demo-bucket2/test.txt範例 5:將儲存貯體中的所有物件和字首移至本機目錄
使用參數
--recursive傳遞時,下列mv命令會以遞迴方式將所有指定字首和儲存貯體下的物件,移至指定的目錄。在此範例中,儲存貯體amzn-s3-demo-bucket具有物件test1.txt和test2.txt。aws s3 mvs3://amzn-s3-demo-bucket.\ --recursive輸出:
move: s3://amzn-s3-demo-bucket/test1.txt to test1.txt move: s3://amzn-s3-demo-bucket/test2.txt to test2.txt範例 6:將儲存貯體中的所有物件和字首移至本機目錄,但 ``.jpg`` 檔案除外
使用參數
--recursive傳遞時,下列mv命令會以遞迴方式將指定目錄下的所有檔案移至指定的儲存貯體和字首,同時使用--exclude參數排除某些檔案。在此範例中,目錄myDir具有檔案test1.txt和test2.jpg。aws s3 mvmyDirs3://amzn-s3-demo-bucket/\ --recursive \ --exclude"*.jpg"輸出:
move: myDir/test1.txt to s3://amzn-s3-demo-bucket2/test1.txt範例 7:將儲存貯體中的所有物件和字首移至本機目錄,但指定的字首除外
使用參數
--recursive傳遞時,下列mv命令會以遞迴方式將指定儲存貯體下的所有物件移至另一個儲存貯體,同時使用--exclude參數排除某些物件。在此範例中,儲存貯體amzn-s3-demo-bucket具有物件test1.txt和another/test1.txt。aws s3 mvs3://amzn-s3-demo-bucket/s3://amzn-s3-demo-bucket2/\ --recursive \ --exclude"amzn-s3-demo-bucket/another/*"輸出:
move: s3://amzn-s3-demo-bucket/test1.txt to s3://amzn-s3-demo-bucket2/test1.txt範例 8:將物件移至指定的儲存貯體,並設定 ACL
將 ACL 設定為
public-read-write時,下列mv命令會將單一物件移至指定的儲存貯體和索引鍵:aws s3 mvs3://amzn-s3-demo-bucket/test.txts3://amzn-s3-demo-bucket/test2.txt\ --aclpublic-read-write輸出:
move: s3://amzn-s3-demo-bucket/test.txt to s3://amzn-s3-demo-bucket/test2.txt範例 9:將本機檔案移至指定的儲存貯體並授予許可
下列
mv命令說明使用--grants選項,將讀取存取權授予所有使用者,並完全控制由其電子郵件地址識別的特定使用者。aws s3 mvfile.txts3://amzn-s3-demo-bucket/\ --grantsread=uri=http://acs.amazonaws.com/groups/global/AllUsersfull=emailaddress=user@example.com輸出:
move: file.txt to s3://amzn-s3-demo-bucket/file.txt範例 10:將檔案移至 S3 存取點
下列
mv命令會將名為mydoc.txt的單一檔案,移至名為myaccesspoint,鍵名為mykey的存取點。aws s3 mvmydoc.txts3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey輸出:
move: mydoc.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 Mv
。
-
以下程式碼範例顯示如何使用 presign。
- AWS CLI
-
範例 1:使用連結至 S3 儲存貯體中物件的預設一小時生命週期,建立預先簽章的 URL
下列
presign命令會為指定的儲存貯體和索引鍵產生預先簽章的 URL,有效期為一小時。aws s3 presigns3://amzn-s3-demo-bucket/test2.txt輸出:
https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/key?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAEXAMPLE123456789%2F20210621%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20210621T041609Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=EXAMBLE1234494d5fba3fed607f98018e1dfc62e2529ae96d844123456範例 2:建立具有連結至 S3 儲存貯體中物件之自訂生命週期的預先簽章 URL
下列
presign命令會為指定的儲存貯體和索引鍵產生預先簽章的 URL,有效期為一星期。aws s3 presigns3://amzn-s3-demo-bucket/test2.txt\ --expires-in604800輸出:
https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/key?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAEXAMPLE123456789%2F20210621%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20210621T041609Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=EXAMBLE1234494d5fba3fed607f98018e1dfc62e2529ae96d844123456如需詳細資訊,請參閱《S3 開發人員指南》中的與其他人分享物件。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 Presign
。
-
以下程式碼範例顯示如何使用 put-bucket-accelerate-configuration。
- AWS CLI
-
設定儲存貯體的加速組態
下列
put-bucket-accelerate-configuration範例會啟用指定儲存貯體的加速組態。aws s3api put-bucket-accelerate-configuration \ --bucketamzn-s3-demo-bucket\ --accelerate-configurationStatus=Enabled此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketAccelerateConfiguration
。
-
以下程式碼範例顯示如何使用 put-bucket-acl。
- AWS CLI
-
此範例授予
full control兩個 AWS 使用者 (user1@example.com 和 user2@example.com) 和read許可給每個人:aws s3api put-bucket-acl --bucketamzn-s3-demo-bucket--grant-full-controlemailaddress=user1@example.com,emailaddress=user2@example.com--grant-readuri=http://acs.amazonaws.com/groups/global/AllUsers如需自訂 ACL (s3api ACL 命令如
put-bucket-acl,使用相同的速記引數表示法),請參閱 http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html。-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketAcl
。
-
以下程式碼範例顯示如何使用 put-bucket-analytics-configuration。
- AWS CLI
-
設定儲存貯體的分析組態
下列
put-bucket-analytics-configuration範例會設定指定儲存貯體的分析。aws s3api put-bucket-analytics-configuration \ --bucketamzn-s3-demo-bucket--id1\ --analytics-configuration '{"Id": "1","StorageClassAnalysis": {}}'此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketAnalyticsConfiguration
。
-
以下程式碼範例顯示如何使用 put-bucket-cors。
- AWS CLI
-
下列範例會啟用來自 www.example.com 的
PUT、POST和DELETE請求,並啟用來自任何網域的GET請求:aws s3api put-bucket-cors --bucketamzn-s3-demo-bucket--cors-configurationfile://cors.jsoncors.json:{"CORSRules":[{"AllowedOrigins": ["http://www.example.com"], "AllowedHeaders": ["*"], "AllowedMethods": ["PUT", "POST", "DELETE"], "MaxAgeSeconds":3000,"ExposeHeaders": ["x-amz-server-side-encryption"]},{"AllowedOrigins": ["*"], "AllowedHeaders": ["Authorization"], "AllowedMethods": ["GET"], "MaxAgeSeconds":3000}]}-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketCors
。
-
以下程式碼範例顯示如何使用 put-bucket-encryption。
- AWS CLI
-
針對儲存貯體設定伺服器端加密組態
下列
put-bucket-encryption範例會將 AES256 加密設定為指定儲存貯體的預設值。aws s3api put-bucket-encryption \ --bucketamzn-s3-demo-bucket\ --server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]}'此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketEncryption
。
-
以下程式碼範例顯示如何使用 put-bucket-intelligent-tiering-configuration。
- AWS CLI
-
更新儲存貯體上的 S3 Intelligent-Tiering 組態
下列
put-bucket-intelligent-tiering-configuration範例會更新儲存貯體上名為 ExampleConfig 的 S3 Intelligent-Tiering 組態。組態會在 90 天後將未在前綴影像下存取的物件轉換為 Archive Access,並在 180 天後轉換為 Deep Archive Access。aws s3api put-bucket-intelligent-tiering-configuration \ --bucketamzn-s3-demo-bucket\ --id"ExampleConfig"\ --intelligent-tiering-configurationfile://intelligent-tiering-configuration.jsonintelligent-tiering-configuration.json的內容:{ "Id": "ExampleConfig", "Status": "Enabled", "Filter": { "Prefix": "images" }, "Tierings": [ { "Days": 90, "AccessTier": "ARCHIVE_ACCESS" }, { "Days": 180, "AccessTier": "DEEP_ARCHIVE_ACCESS" } ] }此命令不會產生輸出。
如需詳細資訊,請參閱《Amazon S3 使用者指南》中的設定現有儲存貯體的物件擁有權。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketIntelligentTieringConfiguration
。
-
以下程式碼範例顯示如何使用 put-bucket-inventory-configuration。
- AWS CLI
-
範例 1:設定儲存貯體的庫存組態
下列
put-bucket-inventory-configuration範例會設定儲存貯體每週 ORC 格式的庫存報告amzn-s3-demo-bucket。aws s3api put-bucket-inventory-configuration \ --bucketamzn-s3-demo-bucket\ --id1\ --inventory-configuration '{"Destination": { "S3BucketDestination": { "AccountId": "123456789012", "Bucket": "arn:aws:s3:::amzn-s3-demo-bucket", "Format": "ORC" }}, "IsEnabled": true, "Id": "1", "IncludedObjectVersions": "Current", "Schedule": { "Frequency": "Weekly" }}'此命令不會產生輸出。
範例 2:設定儲存貯體的庫存組態
下列
put-bucket-inventory-configuration範例會設定儲存貯體每日 CSV 格式的庫存報告amzn-s3-demo-bucket。aws s3api put-bucket-inventory-configuration \ --bucketamzn-s3-demo-bucket\ --id2\ --inventory-configuration '{"Destination": { "S3BucketDestination": { "AccountId": "123456789012", "Bucket": "arn:aws:s3:::amzn-s3-demo-bucket", "Format": "CSV" }}, "IsEnabled": true, "Id": "2", "IncludedObjectVersions": "Current", "Schedule": { "Frequency": "Daily" }}'此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketInventoryConfiguration
。
-
以下程式碼範例顯示如何使用 put-bucket-lifecycle-configuration。
- AWS CLI
-
下列命令會將生命週期組態套用至名為
amzn-s3-demo-bucket的儲存貯體:aws s3api put-bucket-lifecycle-configuration --bucketamzn-s3-demo-bucket--lifecycle-configurationfile://lifecycle.json檔案
lifecycle.json是目前資料夾中的 JSON 文件,其中指定兩個規則:{ "Rules": [ { "ID": "Move rotated logs to Glacier", "Prefix": "rotated/", "Status": "Enabled", "Transitions": [ { "Date": "2015-11-10T00:00:00.000Z", "StorageClass": "GLACIER" } ] }, { "Status": "Enabled", "Prefix": "", "NoncurrentVersionTransitions": [ { "NoncurrentDays": 2, "StorageClass": "GLACIER" } ], "ID": "Move old versions to Glacier" } ] }第一個規則會在指定的日期,將字首為
rotated的檔案移至 Glacier。當舊物件版本不再是目前版本時,第二個規則會將舊物件版本移至 Glacier。如需可接受時間戳記格式的資訊,請參閱《AWS CLI 使用者指南》中的「指定參數值」。-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketLifecycleConfiguration
。
-
以下程式碼範例顯示如何使用 put-bucket-lifecycle。
- AWS CLI
-
下列命令會將生命週期組態套用至儲存貯體
amzn-s3-demo-bucket:aws s3api put-bucket-lifecycle --bucketamzn-s3-demo-bucket--lifecycle-configurationfile://lifecycle.json檔案
lifecycle.json是目前資料夾中的 JSON 文件,其中指定兩個規則:{ "Rules": [ { "ID": "Move to Glacier after sixty days (objects in logs/2015/)", "Prefix": "logs/2015/", "Status": "Enabled", "Transition": { "Days": 60, "StorageClass": "GLACIER" } }, { "Expiration": { "Date": "2016-01-01T00:00:00.000Z" }, "ID": "Delete 2014 logs in 2016.", "Prefix": "logs/2014/", "Status": "Enabled" } ] }第一個規則會在六十天後將檔案移至 Amazon Glacier。第二個規則會在指定的日期從 Amazon S3 刪除檔案。如需可接受時間戳記格式的資訊,請參閱《AWS CLI 使用者指南》中的「指定參數值」。
上述範例中的每個規則,都會指定其套用的政策 (
Transition或Expiration) 和檔案字首 (資料夾名稱)。您也可以透過指定空白字首來建立套用至整個儲存貯體的規則:{ "Rules": [ { "ID": "Move to Glacier after sixty days (all objects in bucket)", "Prefix": "", "Status": "Enabled", "Transition": { "Days": 60, "StorageClass": "GLACIER" } } ] }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketLifecycle
。
-
以下程式碼範例顯示如何使用 put-bucket-logging。
- AWS CLI
-
範例 1:設定儲存貯體政策記錄
下列
put-bucket-logging範例會設定 amzn-s3-demo-bucket 的記錄政策。首先,使用put-bucket-policy命令在儲存貯體政策中,將許可授予日誌記錄服務主體。aws s3api put-bucket-policy \ --bucketamzn-s3-demo-bucket\ --policyfile://policy.jsonpolicy.json的內容:{ "Version":"2012-10-17", "Statement": [ { "Sid": "S3ServerAccessLogsPolicy", "Effect": "Allow", "Principal": {"Service": "logging.s3.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/Logs/*", "Condition": { "ArnLike": {"aws:SourceARN": "arn:aws:s3:::SOURCE-BUCKET-NAME"}, "StringEquals": {"aws:SourceAccount": "SOURCE-AWS-ACCOUNT-ID"} } } ] }使用
put-bucket-logging套用記錄政策。aws s3api put-bucket-logging \ --bucketamzn-s3-demo-bucket\ --bucket-logging-statusfile://logging.jsonlogging.json的內容:{ "LoggingEnabled": { "TargetBucket": "amzn-s3-demo-bucket", "TargetPrefix": "Logs/" } }需要
put-bucket-policy命令才能將s3:PutObject許可授予日誌記錄服務主體。如需詳細資訊,請參閱《Amazon S3 使用者指南》中的 Amazon S3 伺服器存取日誌記錄。
範例 2:僅設定單一使用者記錄存取權的儲存貯體政策
下列
put-bucket-logging範例會設定 amzn-s3-demo-bucket 的記錄政策。AWS 使用者 bob@example.com 擁有對日誌檔案的完全控制權,且其他人都沒有存取權。首先,使用put-bucket-acl授予 S3 許可。aws s3api put-bucket-acl \ --bucketamzn-s3-demo-bucket\ --grant-writeURI=http://acs.amazonaws.com/groups/s3/LogDelivery\ --grant-read-acpURI=http://acs.amazonaws.com/groups/s3/LogDelivery接著,使用
put-bucket-logging套用日誌記錄政策。aws s3api put-bucket-logging \ --bucketamzn-s3-demo-bucket\ --bucket-logging-statusfile://logging.jsonlogging.json的內容:{ "LoggingEnabled": { "TargetBucket": "amzn-s3-demo-bucket", "TargetPrefix": "amzn-s3-demo-bucket-logs/", "TargetGrants": [ { "Grantee": { "Type": "AmazonCustomerByEmail", "EmailAddress": "bob@example.com" }, "Permission": "FULL_CONTROL" } ] } }必須使用
put-bucket-acl命令,才能將必要許可 (write 及 read-acp 許可) 授予 S3 日誌交付系統。如需詳細資訊,請參閱《Amazon S3 開發人員指南》中的 Amazon S3 伺服器存取日誌記錄。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketLogging
。
-
以下程式碼範例顯示如何使用 put-bucket-metrics-configuration。
- AWS CLI
-
設定儲存貯體的指標組態
下列
put-bucket-metrics-configuration範例會為指定的儲存貯體設定 ID 為 123 的指標組態。aws s3api put-bucket-metrics-configuration \ --bucketamzn-s3-demo-bucket\ --id123\ --metrics-configuration '{"Id": "123", "Filter": {"Prefix": "logs"}}'此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketMetricsConfiguration
。
-
以下程式碼範例顯示如何使用 put-bucket-notification-configuration。
- AWS CLI
-
啟用儲存貯體的指定通知
下列
put-bucket-notification-configuration範例會套用通知組態至名為amzn-s3-demo-bucket的儲存貯體。檔案notification.json是目前資料夾中的 JSON 文件,可用來指定 SNS 主題,以及要監控的事件類型。aws s3api put-bucket-notification-configuration \ --bucketamzn-s3-demo-bucket\ --notification-configurationfile://notification.jsonnotification.json的內容:{ "TopicConfigurations": [ { "TopicArn": "arn:aws:sns:us-west-2:123456789012:s3-notification-topic", "Events": [ "s3:ObjectCreated:*" ] } ] }SNS 主題必須連接 IAM 政策,以允許 Amazon S3 發佈至該政策。
{ "Version":"2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SNS:Publish" ], "Resource": "arn:aws:sns:us-west-2:123456789012::s3-notification-topic", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:amzn-s3-demo-bucket" } } } ] }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketNotificationConfiguration
。
-
以下程式碼範例顯示如何使用 put-bucket-notification。
- AWS CLI
-
將通知組態套用至名為
amzn-s3-demo-bucket的儲存貯體:aws s3api put-bucket-notification --bucketamzn-s3-demo-bucket--notification-configurationfile://notification.json檔案
notification.json是目前資料夾中的 JSON 文件,可用來指定 SNS 主題,以及要監控的事件類型:{ "TopicConfiguration": { "Event": "s3:ObjectCreated:*", "Topic": "arn:aws:sns:us-west-2:123456789012:s3-notification-topic" } }SNS 主題必須連接 IAM 政策,以允許 Amazon S3 發佈至該政策:
{ "Version":"2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SNS:Publish" ], "Resource": "arn:aws:sns:us-west-2:123456789012:amzn-s3-demo-bucket", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:amzn-s3-demo-bucket" } } } ] }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketNotification
。
-
以下程式碼範例顯示如何使用 put-bucket-ownership-controls。
- AWS CLI
-
更新儲存貯體的儲存貯體擁有權設定
下列
put-bucket-ownership-controls範例會更新儲存貯體的儲存貯體擁有權設定。aws s3api put-bucket-ownership-controls \ --bucketamzn-s3-demo-bucket\ --ownership-controls="Rules=[{ObjectOwnership=BucketOwnerEnforced}]"此命令不會產生輸出。
如需詳細資訊,請參閱《Amazon S3 使用者指南》中的設定現有儲存貯體的物件擁有權。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketOwnershipControls
。
-
以下程式碼範例顯示如何使用 put-bucket-policy。
- AWS CLI
-
此範例允許所有使用者擷取 amzn-s3-demo-bucket 中的任何物件,但 MySecretFolder 中的物件除外。此範例也會將
put和delete許可授予 AWS 帳戶1234-5678-9012的根使用者:aws s3api put-bucket-policy --bucketamzn-s3-demo-bucket--policyfile://policy.jsonpolicy.json:{"Statement":[{"Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*"},{"Effect": "Deny", "Principal": "*", "Action": "s3:GetObject", "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/MySecretFolder/*"},{"Effect": "Allow", "Principal":{"AWS":"arn:aws:iam::123456789012:root"},"Action":["s3:DeleteObject","s3:PutObject"],"Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*"}]}-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketPolicy
。
-
以下程式碼範例顯示如何使用 put-bucket-replication。
- AWS CLI
-
設定 S3 儲存貯體的複寫
下列
put-bucket-replication範例會將複寫組態套用至指定的 S3 儲存貯體。aws s3api put-bucket-replication \ --bucketamzn-s3-demo-bucket1\ --replication-configurationfile://replication.jsonreplication.json的內容:{ "Role": "arn:aws:iam::123456789012:role/s3-replication-role", "Rules": [ { "Status": "Enabled", "Priority": 1, "DeleteMarkerReplication": { "Status": "Disabled" }, "Filter" : { "Prefix": ""}, "Destination": { "Bucket": "arn:aws:s3:::amzn-s3-demo-bucket2" } } ] }目的地儲存貯體必須啟用版本控制。指定的角色必須具有寫入目的地儲存貯體的許可,並具有允許 Amazon S3 擔任該角色的信任關係。
範例角色許可政策:
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1" ] }, { "Effect": "Allow", "Action": [ "s3:GetObjectVersion", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*" ] }, { "Effect": "Allow", "Action": [ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket2/*" } ] }範例信任關係政策:
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }此命令不會產生輸出。
如需詳細資訊,請參閱《Amazon Simple Storage Service 主控台使用者指南》中的這是主題標題。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketReplication
。
-
以下程式碼範例顯示如何使用 put-bucket-request-payment。
- AWS CLI
-
範例 1:啟用儲存貯體的 ``requester pays`` 組態
下列
put-bucket-request-payment範例會啟用指定儲存貯體的requester pays。aws s3api put-bucket-request-payment \ --bucketamzn-s3-demo-bucket\ --request-payment-configuration '{"Payer":"Requester"}'此命令不會產生輸出。
範例 2:停用儲存貯體的 ``requester pays`` 組態
下列
put-bucket-request-payment範例會針對指定的儲存貯體停用requester pays。aws s3api put-bucket-request-payment \ --bucketamzn-s3-demo-bucket\ --request-payment-configuration '{"Payer":"BucketOwner"}'此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketRequestPayment
。
-
以下程式碼範例顯示如何使用 put-bucket-tagging。
- AWS CLI
-
下列命令會將標記組態套用至名為
amzn-s3-demo-bucket的儲存貯體:aws s3api put-bucket-tagging --bucketamzn-s3-demo-bucket--taggingfile://tagging.json檔案
tagging.json是目前資料夾中指定標籤的 JSON 文件:{ "TagSet": [ { "Key": "organization", "Value": "marketing" } ] }或直接從命令列將標記組態套用至
amzn-s3-demo-bucket:aws s3api put-bucket-tagging --bucketamzn-s3-demo-bucket--tagging 'TagSet=[{Key=organization,Value=marketing}]'-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketTagging
。
-
以下程式碼範例顯示如何使用 put-bucket-versioning。
- AWS CLI
-
下列命令會啟用名為
amzn-s3-demo-bucket的儲存貯體上的版本控制:aws s3api put-bucket-versioning --bucketamzn-s3-demo-bucket--versioning-configurationStatus=Enabled下列命令會啟用版本控制,並使用 mfa 程式碼
aws s3api put-bucket-versioning --bucketamzn-s3-demo-bucket--versioning-configurationStatus=Enabled--mfa"SERIAL 123456"-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketVersioning
。
-
以下程式碼範例顯示如何使用 put-bucket-website。
- AWS CLI
-
將靜態網站組態套用至名為
amzn-s3-demo-bucket的儲存貯體:aws s3api put-bucket-website --bucketamzn-s3-demo-bucket--website-configurationfile://website.json檔案
website.json是目前資料夾中的 JSON 文件,可用於指定網站的索引和錯誤頁面:{ "IndexDocument": { "Suffix": "index.html" }, "ErrorDocument": { "Key": "error.html" } }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutBucketWebsite
。
-
以下程式碼範例顯示如何使用 put-object-acl。
- AWS CLI
-
下列命令將
full control授予兩名 AWS 使用者 (user1@example.com 和 user2@example.com),並將read許可授予每個人:aws s3api put-object-acl --bucketamzn-s3-demo-bucket--keyfile.txt--grant-full-controlemailaddress=user1@example.com,emailaddress=user2@example.com--grant-readuri=http://acs.amazonaws.com/groups/global/AllUsers如需自訂 ACL (s3api ACL 命令如
put-object-acl,使用相同的速記引數表示法),請參閱 http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html。-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutObjectAcl
。
-
以下程式碼範例顯示如何使用 put-object-legal-hold。
- AWS CLI
-
將法務保存套用至物件
下列
put-object-legal-hold範例會在物件doc1.rtf上設定法務保存:aws s3api put-object-legal-hold \ --bucketamzn-s3-demo-bucket-with-object-lock\ --keydoc1.rtf\ --legal-holdStatus=ON此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutObjectLegalHold
。
-
以下程式碼範例顯示如何使用 put-object-lock-configuration。
- AWS CLI
-
在儲存貯體上設定物件鎖定組態
下列
put-object-lock-configuration範例會在指定的儲存貯體上設定 50 天物件鎖定。aws s3api put-object-lock-configuration \ --bucketamzn-s3-demo-bucket-with-object-lock\ --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 }}}'此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutObjectLockConfiguration
。
-
以下程式碼範例顯示如何使用 put-object-retention。
- AWS CLI
-
設定物件的物件保留組態
下列
put-object-retention範例會設定指定物件的物件保留組態,直到 2025-01-01。aws s3api put-object-retention \ --bucketamzn-s3-demo-bucket-with-object-lock\ --keydoc1.rtf\ --retention '{ "Mode": "GOVERNANCE", "RetainUntilDate": "2025-01-01T00:00:00" }'此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutObjectRetention
。
-
以下程式碼範例顯示如何使用 put-object-tagging。
- AWS CLI
-
在物件上設定標籤
下列
put-object-tagging範例會在指定的物件上,設定具有索引鍵designation和值confidential的標籤。aws s3api put-object-tagging \ --bucketamzn-s3-demo-bucket\ --keydoc1.rtf\ --tagging '{"TagSet": [{ "Key": "designation", "Value": "confidential" }]}'此命令不會產生輸出。
下列
put-object-tagging範例會在指定的物件上設定多個標籤集。aws s3api put-object-tagging \ --bucketamzn-s3-demo-bucket-example\ --keydoc3.rtf\ --tagging '{"TagSet": [{ "Key": "designation", "Value": "confidential" }, { "Key": "department", "Value": "finance" }, { "Key": "team", "Value": "payroll" } ]}'此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutObjectTagging
。
-
以下程式碼範例顯示如何使用 put-object。
- AWS CLI
-
範例 1:將物件上傳至 Amazon S3
下列
put-object命令會將物件上傳至 Amazon S3。aws s3api put-object \ --bucketamzn-s3-demo-bucket\ --keymy-dir/MySampleImage.png\ --bodyMySampleImage.png如需有關上傳實物的詳細資訊,請參閱《Amazon S3 開發人員指南》中的「上傳物件」<http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadingObjects.html>。
範例 2:將影片檔上傳至 Amazon S3
下列
put-object範例會上傳影片檔。aws s3api put-object \ --bucketamzn-s3-demo-bucket\ --keymy-dir/big-video-file.mp4\ --body/media/videos/f-sharp-3-data-services.mp4如需有關上傳實物的詳細資訊,請參閱《Amazon S3 開發人員指南》中的「上傳物件」<http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadingObjects.html>。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutObject
。
-
以下程式碼範例顯示如何使用 put-public-access-block。
- AWS CLI
-
設定儲存貯體的封鎖公開存取組態
下列
put-public-access-block範例會設定指定儲存貯體的限制性封鎖公開存取組態。aws s3api put-public-access-block \ --bucketamzn-s3-demo-bucket\ --public-access-block-configuration"BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true"此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 PutPublicAccessBlock
。
-
以下程式碼範例顯示如何使用 rb。
- AWS CLI
-
範例 1:刪除儲存貯體
下列
rb命令會移除儲存貯體。在此範例中,使用者的儲存貯體為amzn-s3-demo-bucket。請注意,儲存貯體必須為空才能移除:aws s3 rbs3://amzn-s3-demo-bucket輸出:
remove_bucket: amzn-s3-demo-bucket範例 2:強制刪除儲存貯體
下列
rb命令會使用--force參數,先移除儲存貯體中的所有物件,再移除儲存貯體本身。在此範例中,使用者的儲存貯體是amzn-s3-demo-bucket,而amzn-s3-demo-bucket中的物件是test1.txt和test2.txt:aws s3 rbs3://amzn-s3-demo-bucket\ --force輸出:
delete: s3://amzn-s3-demo-bucket/test1.txt delete: s3://amzn-s3-demo-bucket/test2.txt remove_bucket: amzn-s3-demo-bucket-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 Rb
。
-
以下程式碼範例顯示如何使用 restore-object。
- AWS CLI
-
建立物件的還原請求
下列
restore-object範例會還原儲存貯體my-glacier-bucket的指定 Amazon S3 Glacier 物件 10 天。aws s3api restore-object \ --bucketmy-glacier-bucket\ --keydoc1.rtf\ --restore-requestDays=10此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 RestoreObject
。
-
以下程式碼範例顯示如何使用 rm。
- AWS CLI
-
範例 1:刪除 S3 物件
下列
rm命令會刪除單一 S3 物件:aws s3 rms3://amzn-s3-demo-bucket/test2.txt輸出:
delete: s3://amzn-s3-demo-bucket/test2.txt範例 2:刪除儲存貯體中的所有內容
使用參數
--recursive傳遞時,下列rm命令會以遞迴方式刪除指定儲存貯體和字首下的所有物件。在此範例中,儲存貯體amzn-s3-demo-bucket包含物件test1.txt和test2.txt:aws s3 rms3://amzn-s3-demo-bucket\ --recursive輸出:
delete: s3://amzn-s3-demo-bucket/test1.txt delete: s3://amzn-s3-demo-bucket/test2.txt範例 3:刪除儲存貯體中的所有內容,但 ``.jpg`` 檔案除外
下列
rm命令會在傳遞參數--recursive時,以遞迴方式刪除指定儲存貯體和字首下的所有物件,同時使用--exclude參數排除某些物件。在此範例中,儲存貯體amzn-s3-demo-bucket具有物件test1.txt和test2.jpg:aws s3 rms3://amzn-s3-demo-bucket/\ --recursive \ --exclude"*.jpg"輸出:
delete: s3://amzn-s3-demo-bucket/test1.txt範例 4:刪除儲存貯體中的所有內容,指定字首下的物件除外
下列
rm命令會在傳遞參數--recursive時,以遞迴方式刪除指定儲存貯體和字首下的所有物件,同時使用--exclude參數排除特定字首下的所有物件。在此範例中,儲存貯體amzn-s3-demo-bucket具有物件test1.txt和another/test.txt:aws s3 rms3://amzn-s3-demo-bucket/\ --recursive \ --exclude"another/*"輸出:
delete: s3://amzn-s3-demo-bucket/test1.txt範例 5:從 S3 存取點刪除物件
下列
rm命令會從存取點 (myaccesspoint) 刪除單一物件 (mykey)。:: 下列rm命令會從存取點 (myaccesspoint) 刪除單一物件 (mykey)。aws s3 rms3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey輸出:
delete: s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 Rm
。
-
以下程式碼範例顯示如何使用 select-object-content。
- AWS CLI
-
根據 SQL 陳述式篩選 Amazon S3 物件的內容
下列
select-object-content範例會使用指定的 SQL 陳述式篩選物件my-data-file.csv,並將輸出傳送至檔案。aws s3api select-object-content \ --bucketamzn-s3-demo-bucket\ --keymy-data-file.csv\ --expression"select * from s3object limit 100"\ --expression-type 'SQL' \ --input-serialization '{"CSV": {}, "CompressionType": "NONE"}' \ --output-serialization '{"CSV": {}}'"output.csv"此命令不會產生輸出。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 SelectObjectContent
。
-
以下程式碼範例顯示如何使用 sync。
- AWS CLI
-
範例 1:將所有本機物件同步至指定的儲存貯體
下列
sync命令會藉由將本機檔案上傳至 S3,將物件從本機目錄同步至指定的字首和儲存貯體。如果本機檔案的大小與 S3 物件的大小不同、本機檔案上次修改時間比 S3 物件的上次修改時間晚,或本機檔案不存在於指定的儲存貯體和字首下,則需要上傳本機檔案。在此範例中,使用者會將儲存貯體amzn-s3-demo-bucket同步至本機目前的目錄。本機目前的目錄包含test.txt和test2.txt。儲存貯體amzn-s3-demo-bucket不包含物件。aws s3 sync.s3://amzn-s3-demo-bucket輸出:
upload: test.txt to s3://amzn-s3-demo-bucket/test.txt upload: test2.txt to s3://amzn-s3-demo-bucket/test2.txt範例 2:將所有 S3 物件從指定的 S3 儲存貯體同步到另一個儲存貯體
下列
sync命令透過複製 S3 物件,將指定字首和儲存貯體下的物件,同步至另一個指定字首和儲存貯體下的物件。如果兩個 S3 物件大小不同、來源的上次修改時間比目的地的上次修改時間晚,或 S3 物件不存在於指定的儲存貯體和字首目的地下方,則 S3 物件需要複製。在此範例中,使用者會將儲存貯體
amzn-s3-demo-bucket同步至儲存貯體amzn-s3-demo-bucket2。儲存貯體amzn-s3-demo-bucket包含物件test.txt和test2.txt。儲存貯體amzn-s3-demo-bucket2不包含物件:aws s3 syncs3://amzn-s3-demo-buckets3://amzn-s3-demo-bucket2輸出:
copy: s3://amzn-s3-demo-bucket/test.txt to s3://amzn-s3-demo-bucket2/test.txt copy: s3://amzn-s3-demo-bucket/test2.txt to s3://amzn-s3-demo-bucket2/test2.txt範例 3:將所有 S3 物件從指定的 S3 儲存貯體同步至本機目錄
下列
sync命令會下載 S3 物件,將檔案從指定的 S3 儲存貯體同步至本機目錄。如果 S3 物件大小與本機檔案大小不同、S3 物件的上次修改時間比本機檔案的上次修改時間晚,或本機目錄中不存在 S3 物件,則 S3 物件將需要下載。請注意,從 S3 下載物件時,本機檔案的上次修改時間會變更為 S3 物件的上次修改時間。在此範例中,使用者會將儲存貯體amzn-s3-demo-bucket同步至目前的本機目錄。儲存貯體amzn-s3-demo-bucket包含物件test.txt和test2.txt。目前的本機目錄中沒有檔案:aws s3 syncs3://amzn-s3-demo-bucket.輸出:
download: s3://amzn-s3-demo-bucket/test.txt to test.txt download: s3://amzn-s3-demo-bucket/test2.txt to test2.txt範例 4:將所有本機物件同步至指定的儲存貯體,並刪除不相符的所有檔案
下列
sync命令會將指定字首和儲存貯體下的物件同步至本機目錄中的檔案,方法是將本機檔案上傳至 S3。鑑於--delete參數,在指定字首和儲存貯體下存在,但在本機目錄中不存在的任何檔案,都會遭到刪除。在此範例中,使用者會將儲存貯體amzn-s3-demo-bucket同步至本機目前的目錄。本機目前的目錄包含test.txt和test2.txt。儲存貯體amzn-s3-demo-bucket包含物件test3.txt:aws s3 sync.s3://amzn-s3-demo-bucket\ --delete輸出:
upload: test.txt to s3://amzn-s3-demo-bucket/test.txt upload: test2.txt to s3://amzn-s3-demo-bucket/test2.txt delete: s3://amzn-s3-demo-bucket/test3.txt範例 5:將所有本機物件同步至指定的儲存貯體,但 ``.jpg`` 檔案除外
下列
sync命令會將指定字首和儲存貯體下的物件同步至本機目錄中的檔案,方法是將本機檔案上傳至 S3。鑑於--exclude參數,符合 S3 和本機中現有模式的所有檔案,都會從同步作業排除。在此範例中,使用者會將儲存貯體amzn-s3-demo-bucket同步至本機目前的目錄。本機目前的目錄包含test.jpg和test2.txt。儲存貯體amzn-s3-demo-bucket包含與本機test.jpg大小不同的物件test.jpg:aws s3 sync.s3://amzn-s3-demo-bucket\ --exclude"*.jpg"輸出:
upload: test2.txt to s3://amzn-s3-demo-bucket/test2.txt範例 6:將所有本機物件同步至指定的儲存貯體,但指定的目錄檔案除外
下列
sync命令會透過下載 S3 物件,將本機目錄下的檔案同步至指定字首和儲存貯體下的物件。此範例使用--exclude參數旗標,從sync命令中排除指定的目錄和 S3 字首。在此範例中,使用者會將本機目前目錄同步至儲存貯體amzn-s3-demo-bucket。本機目前的目錄包含test.txt和another/test2.txt。儲存貯體amzn-s3-demo-bucket包含物件another/test5.txt和test1.txt:aws s3 syncs3://amzn-s3-demo-bucket/.\ --exclude"*another/*"輸出:
download: s3://amzn-s3-demo-bucket/test1.txt to test1.txt範例 7:同步不同區域中儲存貯體之間的所有物件
下列
sync命令會同步不同區域中兩個儲存貯體之間的檔案:aws s3 syncs3://my-us-west-2-buckets3://my-us-east-1-bucket\ --source-regionus-west-2\ --regionus-east-1輸出:
download: s3://my-us-west-2-bucket/test1.txt to s3://my-us-east-1-bucket/test1.txt範例 8:同步至 S3 存取點
下列
sync命令會將目前的目錄同步至存取點 (myaccesspoint):aws s3 sync.s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/輸出:
upload: test.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/test.txt upload: test2.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/test2.txt-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 Sync
。
-
以下程式碼範例顯示如何使用 upload-part-copy。
- AWS CLI
-
將現有物件中的資料複製為資料來源,以上傳部分的物件
下列
upload-part-copy範例會將現有實物中的資料複製為資料來源,以上傳其中的一部分。aws s3api upload-part-copy \ --bucketamzn-s3-demo-bucket\ --key"Map_Data_June.mp4"\ --copy-source"amzn-s3-demo-bucket/copy_of_Map_Data_June.mp4"\ --part-number1\ --upload-id"bq0tdE1CDpWQYRPLHuNG50xAT6pA5D.m_RiBy0ggOH6b13pVRY7QjvLlf75iFdJqp_2wztk5hvpUM2SesXgrzbehG5hViyktrfANpAD0NO.Nk3XREBqvGeZF6U3ipiSm"輸出:
{ "CopyPartResult": { "LastModified": "2019-12-13T23:16:03.000Z", "ETag": "\"711470fc377698c393d94aed6305e245\"" } }-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 UploadPartCopy
。
-
以下程式碼範例顯示如何使用 upload-part。
- AWS CLI
-
下列命令會上傳使用
create-multipart-upload命令起始之分段上傳作業的第一個部分:aws s3api upload-part --bucketamzn-s3-demo-bucket--key 'multipart/01' --part-number1--bodypart01--upload-id"dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R"body選項會取得本機檔案的名稱或路徑,以進行上傳作業 (請勿使用 file:// prefix)。最小部分的大小為 5 MB。上傳 ID 由create-multipart-upload傳回,也可以藉由list-multipart-uploads擷取。當您建立分段上傳時,會指定儲存貯體和索引鍵。輸出:
{ "ETag": "\"e868e0f4719e394144ef36531ee6824c\"" }儲存每一個部分的 ETag 值,以供稍後使用。完成分段上傳時需要該值。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 UploadPart
。
-
以下程式碼範例顯示如何使用 website。
- AWS CLI
-
將 S3 儲存貯體設定為靜態網站
下列命令會將名為
amzn-s3-demo-bucket的儲存貯體設定為靜態網站。索引文件選項指定amzn-s3-demo-bucket中的檔案,該檔案是當訪客導覽至網站 URL 時,將導向至其中的檔案。在此情況下,儲存貯體位於 us-west-2 區域,因此網站會出現在http://amzn-s3-demo-bucket.s3-website-us-west-2.amazonaws.com。出現在靜態網站之儲存貯體中的所有檔案,必須設定為允許訪客開啟檔案。檔案許可會與儲存貯體網站組態分開設定。
aws s3 websites3://amzn-s3-demo-bucket/\ --index-documentindex.html\ --error-documenterror.html如需在 Amazon S3 中託管靜態網站的詳細資訊,請參閱《Amazon Simple Storage Service 開發人員指南》中的託管靜態網站。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 Website
。
-