使用 的 Amazon S3 範例 AWS CLI - AWS Command Line Interface

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 的 Amazon S3 範例 AWS CLI

下列程式碼範例示範如何搭配 Amazon S3 AWS Command Line Interface 使用 來執行動作和實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會示範如何呼叫個別服務函數,但您可以在相關案例中查看內容中的動作。

每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例示範如何使用 abort-multipart-upload

AWS CLI

若要中止指定的分段上傳

下列abort-multipart-upload命令會中止儲存貯體 multipart/01 中金鑰的分段上傳my-bucket

aws s3api abort-multipart-upload \ --bucket my-bucket \ --key multipart/01 \ --upload-id dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R

此命令所需的上傳 ID 由 輸出,create-multipart-upload也可以使用 擷取list-multipart-uploads

下列程式碼範例示範如何使用 complete-multipart-upload

AWS CLI

下列命令會完成儲存貯體 multipart/01 中金鑰的分段上傳my-bucket

aws s3api complete-multipart-upload --multipart-upload file://mpustruct --bucket my-bucket --key 'multipart/01' --upload-id dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R

此命令所需的上傳 ID 由 輸出,create-multipart-upload也可以使用 擷取list-multipart-uploads

上述命令中的分段上傳選項採用的JSON結構描述了應該重新組裝到完整檔案中的分段上傳的部分。在此範例中,字file://首用於從名為 的本機資料夾中的檔案載入JSON結構mpustruct

mpustruct:

{ "Parts": [ { "ETag": "e868e0f4719e394144ef36531ee6824c", "PartNumber": 1 }, { "ETag": "6bb2b12753d66fe86da4998aa33fffb0", "PartNumber": 2 }, { "ETag": "d0a0112e841abec9c9ec83406f0159c8", "PartNumber": 3 } ] }

每次使用 upload-part命令上傳零件時,都會輸出每個部分的ETag值,也可以呼叫list-parts或計算每個部分的MD5檢查總和來擷取。

輸出:

{ "ETag": "\"3944a9f7a4faab7f78788ff6210f63f0-3\"", "Bucket": "my-bucket", "Location": "https://my-bucket.s3.amazonaws.com/multipart%2F01", "Key": "multipart/01" }

下列程式碼範例示範如何使用 copy-object

AWS CLI

下列命令會將物件從 複製到 bucket-1 bucket-2

aws s3api copy-object --copy-source bucket-1/test.txt --key test.txt --bucket bucket-2

輸出:

{ "CopyObjectResult": { "LastModified": "2015-11-10T01:07:25.000Z", "ETag": "\"589c8b79c230a6ecd5a7e1d040a9a030\"" }, "VersionId": "YdnYvTCVDqRRFA.NFJjy36p0hxifMlkA" }
  • 如需API詳細資訊,請參閱 命令參考 CopyObject中的 。 AWS CLI

下列程式碼範例示範如何使用 cp

AWS CLI

範例 1:將本機檔案複製到 S3

下列cp命令會將單一檔案複製到指定的儲存貯體和金鑰:

aws s3 cp test.txt s3://mybucket/test2.txt

輸出:

upload: test.txt to s3://mybucket/test2.txt

範例 2:將本機檔案複製到具有過期日期的 S3

下列cp命令會將單一檔案複製到指定的儲存貯體和金鑰,其過期時間是指定的 ISO 8601 時間戳記:

aws s3 cp test.txt s3://mybucket/test2.txt \ --expires 2014-10-01T20:30:00Z

輸出:

upload: test.txt to s3://mybucket/test2.txt

範例 3:將檔案從 S3 複製到 S3

下列cp命令會將單一 s3 物件複製到指定的儲存貯體和金鑰:

aws s3 cp s3://mybucket/test.txt s3://mybucket/test2.txt

輸出:

copy: s3://mybucket/test.txt to s3://mybucket/test2.txt

範例 4:將 S3 物件複製到本機檔案

下列cp命令會將單一物件複製到本機指定的檔案:

aws s3 cp s3://mybucket/test.txt test2.txt

輸出:

download: s3://mybucket/test.txt to test2.txt

範例 5:將 S3 物件從一個儲存貯體複製到另一個儲存貯體

下列cp命令會將單一物件複製到指定的儲存貯體,同時保留其原始名稱:

aws s3 cp s3://mybucket/test.txt s3://mybucket2/

輸出:

copy: s3://mybucket/test.txt to s3://mybucket2/test.txt

範例 6:遞迴複製 S3 物件至本機目錄

與 參數 一起傳遞時--recursive,下列cp命令會遞迴地將所有指定字首和儲存貯體下的物件複製到指定的目錄。在此範例中,儲存貯體mybucket具有物件 test1.txttest2.txt

aws s3 cp s3://mybucket . \ --recursive

輸出:

download: s3://mybucket/test1.txt to test1.txt download: s3://mybucket/test2.txt to test2.txt

範例 7:遞迴複製本機檔案至 S3

與 參數 一起傳遞時--recursive,下列cp命令會遞迴地將指定目錄下的所有檔案複製到指定的儲存貯體和字首,同時使用 --exclude 參數排除某些檔案。在此範例中,目錄myDir具有 檔案test1.txttest2.jpg

aws s3 cp myDir s3://mybucket/ \ --recursive \ --exclude "*.jpg"

輸出:

upload: myDir/test1.txt to s3://mybucket/test1.txt

範例 8:遞迴複製 S3 物件至另一個儲存貯體

與 參數 一起傳遞時--recursive,下列cp命令會遞迴地將指定儲存貯體下的所有物件複製到另一個儲存貯體,同時使用 --exclude 參數排除某些物件。在此範例中,儲存貯體mybucket具有物件 test1.txtanother/test1.txt

aws s3 cp s3://mybucket/ s3://mybucket2/ \ --recursive \ --exclude "another/*"

輸出:

copy: s3://mybucket/test1.txt to s3://mybucket2/test1.txt

您可以合併 --exclude--include選項,以僅複製符合模式的物件,不包括所有其他物件:

aws s3 cp s3://mybucket/logs/ s3://mybucket2/logs/ \ --recursive \ --exclude "*" \ --include "*.log"

輸出:

copy: s3://mybucket/logs/test/test.log to s3://mybucket2/logs/test/test.log copy: s3://mybucket/logs/test3.log to s3://mybucket2/logs/test3.log

範例 9:在複製 S3 物件時設定存取控制清單 (ACL)

下列cp命令會將 設定為 時,會將單一物件複製到指定的儲存貯體和金鑰ACLpublic-read-write

aws s3 cp s3://mybucket/test.txt s3://mybucket/test2.txt \ --acl public-read-write

輸出:

copy: s3://mybucket/test.txt to s3://mybucket/test2.txt

請注意,如果您使用 --acl選項,請確保任何相關聯的IAM政策都包含 "s3:PutObjectAcl"動作:

aws iam get-user-policy \ --user-name myuser \ --policy-name mypolicy

輸出:

{ "UserName": "myuser", "PolicyName": "mypolicy", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::mybucket/*" ], "Effect": "Allow", "Sid": "Stmt1234567891234" } ] } }

範例 10:授予 S3 物件的許可

下列cp命令說明 --grants選項的用途,以將讀取存取權授予 識別的所有使用者,URI並將完全控制權授予 識別的 Canonical ID 識別的特定使用者:

aws s3 cp file.txt s3://mybucket/ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=id=79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be

輸出:

upload: file.txt to s3://mybucket/file.txt

範例 11:將本機檔案串流上傳至 S3

PowerShell 可能會變更 的編碼,或CRLF將 新增至管道輸入。

下列cp命令會將本機檔案串流從標準輸入上傳至指定的儲存貯體和金鑰:

aws s3 cp - s3://mybucket/stream.txt

範例 12:將大於 50GB 的本機檔案串流上傳至 S3

下列cp命令會將 51GB 本機檔案串流從標準輸入上傳至指定的儲存貯體和金鑰。必須提供 --expected-size選項,否則在達到預設的 10,000 部分限制時,上傳可能會失敗:

aws s3 cp - s3://mybucket/stream.txt --expected-size 54760833024

範例 13:將 S3 物件下載為本機檔案串流

PowerShell 可能會變更 的編碼,或CRLF將 新增至管道或重新導向的輸出。

下列cp命令會在本機將 S3 物件下載為標準輸出的串流。下載為串流目前與 --recursive 參數不相容:

aws s3 cp s3://mybucket/stream.txt -

範例 14:上傳至 S3 存取點

下列cp命令會將單一檔案 (mydoc.txt) 上傳到金鑰 () 的存取點 (myaccesspointmykey

aws s3 cp mydoc.txt s3://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 cp s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey mydoc.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範例會建立名為 的儲存貯體my-bucket

aws s3api create-bucket \ --bucket my-bucket \ --region us-east-1

輸出:

{ "Location": "/my-bucket" }

如需詳細資訊,請參閱 Amazon S3 使用者指南 中的建立儲存貯體。

範例 2:在擁有者強制執行的情況下建立儲存貯體

下列create-bucket範例會建立名為 的儲存貯體my-bucket,使用 S3 物件擁有權的儲存貯體擁有者強制執行設定。

aws s3api create-bucket \ --bucket my-bucket \ --region us-east-1 \ --object-ownership BucketOwnerEnforced

輸出:

{ "Location": "/my-bucket" }

如需詳細資訊,請參閱 Amazon S3 使用者指南 中的控制物件的擁有權和停用ACLs

範例 3:在 ``us-east-1`` 區域之外建立儲存貯體

下列create-bucket範例會在 eu-west-1 區域中建立名為 my-bucket的儲存貯體。以外的區域us-east-1需要LocationConstraint指定適當的 ,才能在所需區域中建立儲存貯體。

aws s3api create-bucket \ --bucket my-bucket \ --region eu-west-1 \ --create-bucket-configuration LocationConstraint=eu-west-1

輸出:

{ "Location": "http://my-bucket.s3.amazonaws.com/" }

如需詳細資訊,請參閱 Amazon S3 使用者指南 中的建立儲存貯體。

  • 如需API詳細資訊,請參閱 命令參考 CreateBucket中的 。 AWS CLI

下列程式碼範例示範如何使用 create-multipart-upload

AWS CLI

下列命令會使用 my-bucket金鑰在儲存貯體中建立分段上傳multipart/01

aws s3api create-multipart-upload --bucket my-bucket --key 'multipart/01'

輸出:

{ "Bucket": "my-bucket", "UploadId": "dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R", "Key": "multipart/01" }

完成的檔案會在儲存貯01multipart中名為 的資料夾中命名my-bucket。儲存上傳 ID、金鑰和儲存貯體名稱,以便與 upload-part 命令搭配使用。

下列程式碼範例示範如何使用 delete-bucket-analytics-configuration

AWS CLI

刪除儲存貯體的分析組態

下列delete-bucket-analytics-configuration範例會移除指定儲存貯體和 ID 的分析組態。

aws s3api delete-bucket-analytics-configuration \ --bucket my-bucket \ --id 1

此命令不會產生輸出。

下列程式碼範例示範如何使用 delete-bucket-cors

AWS CLI

下列命令會從名為 的儲存貯體中刪除跨來源資源共用組態my-bucket

aws s3api delete-bucket-cors --bucket my-bucket
  • 如需API詳細資訊,請參閱 命令參考 DeleteBucketCors中的 。 AWS CLI

下列程式碼範例示範如何使用 delete-bucket-encryption

AWS CLI

刪除儲存貯體的伺服器端加密組態

下列delete-bucket-encryption範例會刪除指定儲存貯體的伺服器端加密組態。

aws s3api delete-bucket-encryption \ --bucket my-bucket

此命令不會產生輸出。

下列程式碼範例示範如何使用 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 \ --bucket DOC-EXAMPLE-BUCKET \ --id ExampleConfig

此命令不會產生輸出。

如需詳細資訊,請參閱 Amazon S3 使用者指南 中的使用 S3 Intelligent-TieringAmazon S3

下列程式碼範例示範如何使用 delete-bucket-inventory-configuration

AWS CLI

若要刪除儲存貯體的庫存組態

下列delete-bucket-inventory-configuration範例會刪除具有指定儲存貯體 ID 1的庫存組態。

aws s3api delete-bucket-inventory-configuration \ --bucket my-bucket \ --id 1

此命令不會產生輸出。

下列程式碼範例示範如何使用 delete-bucket-lifecycle

AWS CLI

下列命令會從名為 的儲存貯體中刪除生命週期組態my-bucket

aws s3api delete-bucket-lifecycle --bucket my-bucket

下列程式碼範例示範如何使用 delete-bucket-metrics-configuration

AWS CLI

刪除儲存貯體的指標組態

下列delete-bucket-metrics-configuration範例會移除指定儲存貯體和 ID 的指標組態。

aws s3api delete-bucket-metrics-configuration \ --bucket my-bucket \ --id 123

此命令不會產生輸出。

下列程式碼範例示範如何使用 delete-bucket-ownership-controls

AWS CLI

若要移除儲存貯體的儲存貯體擁有權設定

下列delete-bucket-ownership-controls範例會移除儲存貯體的儲存貯體擁有權設定。

aws s3api delete-bucket-ownership-controls \ --bucket DOC-EXAMPLE-BUCKET

此命令不會產生輸出。

如需詳細資訊,請參閱 Amazon S3 使用者指南 中的在現有儲存貯體上設定物件擁有權

下列程式碼範例示範如何使用 delete-bucket-policy

AWS CLI

下列命令會從名為 的儲存貯體中刪除儲存貯體政策my-bucket

aws s3api delete-bucket-policy --bucket my-bucket

下列程式碼範例示範如何使用 delete-bucket-replication

AWS CLI

下列命令會從名為 的儲存貯體中刪除複寫組態my-bucket

aws s3api delete-bucket-replication --bucket my-bucket

下列程式碼範例示範如何使用 delete-bucket-tagging

AWS CLI

下列命令會從名為 的儲存貯體中刪除標記組態my-bucket

aws s3api delete-bucket-tagging --bucket my-bucket

下列程式碼範例示範如何使用 delete-bucket-website

AWS CLI

下列命令會從名為 的儲存貯體中刪除網站組態my-bucket

aws s3api delete-bucket-website --bucket my-bucket

下列程式碼範例示範如何使用 delete-bucket

AWS CLI

下列命令會刪除名為 的儲存貯體my-bucket

aws s3api delete-bucket --bucket my-bucket --region us-east-1
  • 如需API詳細資訊,請參閱 命令參考 DeleteBucket中的 。 AWS CLI

下列程式碼範例示範如何使用 delete-object-tagging

AWS CLI

刪除物件的標籤集

下列delete-object-tagging範例會從物件 刪除具有指定金鑰的標籤doc1.rtf

aws s3api delete-object-tagging \ --bucket my-bucket \ --key doc1.rtf

此命令不會產生輸出。

下列程式碼範例示範如何使用 delete-object

AWS CLI

下列命令test.txt會從名為 的儲存貯體中刪除名為 的物件my-bucket

aws s3api delete-object --bucket my-bucket --key test.txt

如果已啟用儲存貯體版本控制,輸出將包含刪除標記的版本 ID:

{ "VersionId": "9_gKg5vG56F.TTEUdwkxGpJ3tNDlWlGq", "DeleteMarker": true }

如需刪除物件的詳細資訊,請參閱 Amazon S3 開發人員指南 中的刪除物件。

  • 如需API詳細資訊,請參閱 命令參考 DeleteObject中的 。 AWS CLI

下列程式碼範例示範如何使用 delete-objects

AWS CLI

下列命令會從名為 的儲存貯體中刪除物件my-bucket

aws s3api delete-objects --bucket my-bucket --delete file://delete.json

delete.json 是目前目錄中JSON的文件,指定要刪除的物件:

{ "Objects": [ { "Key": "test1.txt" } ], "Quiet": false }

輸出:

{ "Deleted": [ { "DeleteMarkerVersionId": "mYAT5Mc6F7aeUL8SS7FAAqUPO1koHwzU", "Key": "test1.txt", "DeleteMarker": true } ] }
  • 如需API詳細資訊,請參閱 命令參考 DeleteObjects中的 。 AWS CLI

下列程式碼範例示範如何使用 delete-public-access-block

AWS CLI

刪除儲存貯體的區塊公有存取組態

下列delete-public-access-block範例會移除指定儲存貯體上的區塊公有存取組態。

aws s3api delete-public-access-block \ --bucket my-bucket

此命令不會產生輸出。

下列程式碼範例示範如何使用 get-bucket-accelerate-configuration

AWS CLI

擷取儲存貯體的加速組態

下列get-bucket-accelerate-configuration範例會擷取指定儲存貯體的加速組態。

aws s3api get-bucket-accelerate-configuration \ --bucket my-bucket

輸出:

{ "Status": "Enabled" }

下列程式碼範例示範如何使用 get-bucket-acl

AWS CLI

下列命令會擷取名為 之儲存貯體的存取控制清單my-bucket

aws s3api get-bucket-acl --bucket my-bucket

輸出:

{ "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32" }, "Grants": [ { "Grantee": { "DisplayName": "my-username", "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32" }, "Permission": "FULL_CONTROL" } ] }
  • 如需API詳細資訊,請參閱 命令參考 GetBucketAcl中的 。 AWS CLI

下列程式碼範例示範如何使用 get-bucket-analytics-configuration

AWS CLI

擷取具有特定 ID 之儲存貯體的分析組態

下列get-bucket-analytics-configuration範例顯示指定儲存貯體和 ID 的分析組態。

aws s3api get-bucket-analytics-configuration \ --bucket my-bucket \ --id 1

輸出:

{ "AnalyticsConfiguration": { "StorageClassAnalysis": {}, "Id": "1" } }

下列程式碼範例示範如何使用 get-bucket-cors

AWS CLI

下列命令會擷取名為 之儲存貯體的跨來源資源共用組態my-bucket

aws s3api get-bucket-cors --bucket my-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詳細資訊,請參閱 命令參考 GetBucketCors中的 。 AWS CLI

下列程式碼範例示範如何使用 get-bucket-encryption

AWS CLI

擷取儲存貯體的伺服器端加密組態

下列get-bucket-encryption範例會擷取儲存貯體 的伺服器端加密組態my-bucket

aws s3api get-bucket-encryption \ --bucket my-bucket

輸出:

{ "ServerSideEncryptionConfiguration": { "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" } } ] } }

下列程式碼範例示範如何使用 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 \ --bucket DOC-EXAMPLE-BUCKET \ --id ExampleConfig

輸出:

{ "IntelligentTieringConfiguration": { "Id": "ExampleConfig2", "Filter": { "Prefix": "images" }, "Status": "Enabled", "Tierings": [ { "Days": 90, "AccessTier": "ARCHIVE_ACCESS" }, { "Days": 180, "AccessTier": "DEEP_ARCHIVE_ACCESS" } ] } }

如需詳細資訊,請參閱 Amazon S3 使用者指南 中的使用 S3 Intelligent-TieringAmazon S3

下列程式碼範例示範如何使用 get-bucket-inventory-configuration

AWS CLI

擷取儲存貯體的庫存組態

下列get-bucket-inventory-configuration範例會擷取 ID 為 之指定儲存貯體的庫存組態1

aws s3api get-bucket-inventory-configuration \ --bucket my-bucket \ --id 1

輸出:

{ "InventoryConfiguration": { "IsEnabled": true, "Destination": { "S3BucketDestination": { "Format": "ORC", "Bucket": "arn:aws:s3:::my-bucket", "AccountId": "123456789012" } }, "IncludedObjectVersions": "Current", "Id": "1", "Schedule": { "Frequency": "Weekly" } } }

下列程式碼範例示範如何使用 get-bucket-lifecycle-configuration

AWS CLI

下列命令會擷取名為 之儲存貯體的生命週期組態my-bucket

aws s3api get-bucket-lifecycle-configuration --bucket my-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" } ] }

下列程式碼範例示範如何使用 get-bucket-lifecycle

AWS CLI

下列命令會擷取名為 之儲存貯體的生命週期組態my-bucket

aws s3api get-bucket-lifecycle --bucket my-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" } ] }

下列程式碼範例示範如何使用 get-bucket-location

AWS CLI

如果存在限制my-bucket,下列命令會擷取名為 之儲存貯體的位置限制條件:

aws s3api get-bucket-location --bucket my-bucket

輸出:

{ "LocationConstraint": "us-west-2" }

下列程式碼範例示範如何使用 get-bucket-logging

AWS CLI

擷取儲存貯體的記錄狀態

下列get-bucket-logging範例會擷取指定儲存貯體的記錄狀態。

aws s3api get-bucket-logging \ --bucket my-bucket

輸出:

{ "LoggingEnabled": { "TargetPrefix": "", "TargetBucket": "my-bucket-logs" } }
  • 如需API詳細資訊,請參閱 命令參考 GetBucketLogging中的 。 AWS CLI

下列程式碼範例示範如何使用 get-bucket-metrics-configuration

AWS CLI

擷取具有特定 ID 之儲存貯體的指標組態

下列get-bucket-metrics-configuration範例顯示指定儲存貯體和 ID 的指標組態。

aws s3api get-bucket-metrics-configuration \ --bucket my-bucket \ --id 123

輸出:

{ "MetricsConfiguration": { "Filter": { "Prefix": "logs" }, "Id": "123" } }

下列程式碼範例示範如何使用 get-bucket-notification-configuration

AWS CLI

下列命令會擷取名為 之儲存貯體的通知組態my-bucket

aws s3api get-bucket-notification-configuration --bucket my-bucket

輸出:

{ "TopicConfigurations": [ { "Id": "YmQzMmEwM2EjZWVlI0NGItNzVtZjI1MC00ZjgyLWZDBiZWNl", "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-notification-topic", "Events": [ "s3:ObjectCreated:*" ] } ] }

下列程式碼範例示範如何使用 get-bucket-notification

AWS CLI

下列命令會擷取名為 之儲存貯體的通知組態my-bucket

aws s3api get-bucket-notification --bucket my-bucket

輸出:

{ "TopicConfiguration": { "Topic": "arn:aws:sns:us-west-2:123456789012:my-notification-topic", "Id": "YmQzMmEwM2EjZWVlI0NGItNzVtZjI1MC00ZjgyLWZDBiZWNl", "Event": "s3:ObjectCreated:*", "Events": [ "s3:ObjectCreated:*" ] } }

下列程式碼範例示範如何使用 get-bucket-ownership-controls

AWS CLI

擷取儲存貯體的儲存貯體擁有權設定

下列get-bucket-ownership-controls範例會擷取儲存貯體的儲存貯體擁有權設定。

aws s3api get-bucket-ownership-controls \ --bucket DOC-EXAMPLE-BUCKET

輸出:

{ "OwnershipControls": { "Rules": [ { "ObjectOwnership": "BucketOwnerEnforced" } ] } }

如需詳細資訊,請參閱 Amazon S3 使用者指南 中的檢視 S3 儲存貯體的物件擁有權設定Amazon S3

下列程式碼範例示範如何使用 get-bucket-policy-status

AWS CLI

擷取儲存貯體的政策狀態,指出儲存貯體是否為公有

下列get-bucket-policy-status範例會擷取儲存貯體 的政策狀態my-bucket

aws s3api get-bucket-policy-status \ --bucket my-bucket

輸出:

{ "PolicyStatus": { "IsPublic": false } }

下列程式碼範例示範如何使用 get-bucket-policy

AWS CLI

下列命令會擷取名為 之儲存貯體的儲存貯體政策my-bucket

aws s3api get-bucket-policy --bucket my-bucket

輸出:

{ "Policy": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::my-bucket/*\"},{\"Sid\":\"\",\"Effect\":\"Deny\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::my-bucket/secret/*\"}]}" }

policyThe 取得並放置儲存貯體的範例示範如何下載 Amazon S3 儲存貯體政策、修改檔案,然後使用 put-bucket-policy 套用修改後的儲存貯體政策。若要將儲存貯體政策下載至檔案,您可以執行:

aws s3api get-bucket-policy --bucket mybucket --query Policy --output text > policy.json

然後,您可以視需要修改policy.json檔案。最後,您可以執行下列動作,將此修改後的政策套用回 S3 儲存貯體:

policy.json 檔案。最後,您可以執行下列動作,將此修改後的政策套用回 S3 儲存貯體:

檔案。最後,您可以執行下列動作,將此修改後的政策套用回 S3 儲存貯體:

aws s3api put-bucket-policy --bucket mybucket --policy file://policy.json
  • 如需API詳細資訊,請參閱 命令參考 GetBucketPolicy中的 。 AWS CLI

下列程式碼範例示範如何使用 get-bucket-replication

AWS CLI

下列命令會擷取名為 之儲存貯體的複寫組態my-bucket

aws s3api get-bucket-replication --bucket my-bucket

輸出:

{ "ReplicationConfiguration": { "Rules": [ { "Status": "Enabled", "Prefix": "", "Destination": { "Bucket": "arn:aws:s3:::my-bucket-backup", "StorageClass": "STANDARD" }, "ID": "ZmUwNzE4ZmQ4tMjVhOS00MTlkLOGI4NDkzZTIWJjNTUtYTA1" } ], "Role": "arn:aws:iam::123456789012:role/s3-replication-role" } }

下列程式碼範例示範如何使用 get-bucket-request-payment

AWS CLI

擷取儲存貯體的請求付款組態

下列get-bucket-request-payment範例會擷取請求者支付指定儲存貯體的組態。

aws s3api get-bucket-request-payment \ --bucket my-bucket

輸出:

{ "Payer": "BucketOwner" }

下列程式碼範例示範如何使用 get-bucket-tagging

AWS CLI

下列命令會擷取名為 之儲存貯體的標記組態my-bucket

aws s3api get-bucket-tagging --bucket my-bucket

輸出:

{ "TagSet": [ { "Value": "marketing", "Key": "organization" } ] }
  • 如需API詳細資訊,請參閱 命令參考 GetBucketTagging中的 。 AWS CLI

下列程式碼範例示範如何使用 get-bucket-versioning

AWS CLI

下列命令會擷取名為 之儲存貯體的版本控制組態my-bucket

aws s3api get-bucket-versioning --bucket my-bucket

輸出:

{ "Status": "Enabled" }

下列程式碼範例示範如何使用 get-bucket-website

AWS CLI

下列命令會擷取名為 之儲存貯體的靜態網站組態my-bucket

aws s3api get-bucket-website --bucket my-bucket

輸出:

{ "IndexDocument": { "Suffix": "index.html" }, "ErrorDocument": { "Key": "error.html" } }
  • 如需API詳細資訊,請參閱 命令參考 GetBucketWebsite中的 。 AWS CLI

下列程式碼範例示範如何使用 get-object-acl

AWS CLI

下列命令會擷取名為 之儲存貯體中物件的存取控制清單my-bucket

aws s3api get-object-acl --bucket my-bucket --key index.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詳細資訊,請參閱 命令參考 GetObjectAcl中的 。 AWS CLI

下列程式碼範例示範如何使用 get-object-attributes

AWS CLI

從物件擷取中繼資料,而不傳回物件本身

下列get-object-attributes範例會從物件 擷取中繼資料doc1.rtf

aws s3api get-object-attributes \ --bucket my-bucket \ --key doc1.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中的 。

下列程式碼範例示範如何使用 get-object-legal-hold

AWS CLI

擷取物件的法務保存狀態

下列get-object-legal-hold範例會擷取指定物件的法務保存狀態。

aws s3api get-object-legal-hold \ --bucket my-bucket-with-object-lock \ --key doc1.rtf

輸出:

{ "LegalHold": { "Status": "ON" } }

下列程式碼範例示範如何使用 get-object-lock-configuration

AWS CLI

擷取儲存貯體的物件鎖定組態

下列get-object-lock-configuration範例會擷取指定儲存貯體的物件鎖定組態。

aws s3api get-object-lock-configuration \ --bucket my-bucket-with-object-lock

輸出:

{ "ObjectLockConfiguration": { "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 } } } }

下列程式碼範例示範如何使用 get-object-retention

AWS CLI

擷取物件的物件保留組態

下列get-object-retention範例會擷取指定物件的物件保留組態。

aws s3api get-object-retention \ --bucket my-bucket-with-object-lock \ --key doc1.rtf

輸出:

{ "Retention": { "Mode": "GOVERNANCE", "RetainUntilDate": "2025-01-01T00:00:00.000Z" } }

下列程式碼範例示範如何使用 get-object-tagging

AWS CLI

擷取連接至物件的標籤

下列get-object-tagging範例會從指定的物件擷取指定金鑰的值。

aws s3api get-object-tagging \ --bucket my-bucket \ --key doc1.rtf

輸出:

{ "TagSet": [ { "Value": "confidential", "Key": "designation" } ] }

下列get-object-tagging範例會嘗試擷取doc2.rtf沒有標籤的物件 的標籤集。

aws s3api get-object-tagging \ --bucket my-bucket \ --key doc2.rtf

輸出:

{ "TagSet": [] }

下列get-object-tagging範例會擷取doc3.rtf具有多個標籤的物件 的標籤集。

aws s3api get-object-tagging \ --bucket my-bucket \ --key doc3.rtf

輸出:

{ "TagSet": [ { "Value": "confidential", "Key": "designation" }, { "Value": "finance", "Key": "department" }, { "Value": "payroll", "Key": "team" } ] }
  • 如需API詳細資訊,請參閱 命令參考 GetObjectTagging中的 。 AWS CLI

下列程式碼範例示範如何使用 get-object-torrent

AWS CLI

下列命令會為名為 的儲存貯體中的物件建立 torrentmy-bucket

aws s3api get-object-torrent --bucket my-bucket --key large-video-file.mp4 large-video-file.torrent

Torrent 檔案會儲存在本機目前的資料夾中。請注意,輸出檔案名稱 (large-video-file.torrent) 的指定沒有選項名稱,且必須是命令中的最後一個引數。

  • 如需API詳細資訊,請參閱 命令參考 GetObjectTorrent中的 。 AWS CLI

下列程式碼範例示範如何使用 get-object

AWS CLI

下列範例使用 get-object命令從 Amazon S3 下載物件:

aws s3api get-object --bucket text-content --key dir/my_images.tar.bz2 my_images.tar.bz2

請注意,指定 Outfile 參數時不會包含選項名稱,例如 "--outfile"。輸出檔案的名稱必須是 命令中的最後一個參數。

以下範例示範使用 --range從物件下載特定位元組範圍。請注意,位元組範圍需要以 "bytes=":

aws s3api get-object --bucket text-content --key dir/my_data --range bytes=8888-9999 my_data_range

如需擷取物件的詳細資訊,請參閱 Amazon S3 開發人員指南 中的取得物件。

  • 如需API詳細資訊,請參閱 命令參考 GetObject中的 。 AWS CLI

下列程式碼範例示範如何使用 get-public-access-block

AWS CLI

設定或修改儲存貯體的區塊公有存取組態

下列get-public-access-block範例顯示指定儲存貯體的區塊公有存取組態。

aws s3api get-public-access-block \ --bucket my-bucket

輸出:

{ "PublicAccessBlockConfiguration": { "IgnorePublicAcls": true, "BlockPublicPolicy": true, "BlockPublicAcls": true, "RestrictPublicBuckets": true } }

下列程式碼範例示範如何使用 head-bucket

AWS CLI

下列命令會驗證對名為 之儲存貯體的存取my-bucket

aws s3api head-bucket --bucket my-bucket

如果儲存貯體存在且您可以存取,則不會傳回輸出。否則會顯示錯誤訊息。例如:

A client error (404) occurred when calling the HeadBucket operation: Not Found
  • 如需API詳細資訊,請參閱 命令參考 HeadBucket中的 。 AWS CLI

下列程式碼範例示範如何使用 head-object

AWS CLI

下列命令會擷取名為 之儲存貯體中物件的中繼資料my-bucket

aws s3api head-object --bucket my-bucket --key index.html

輸出:

{ "AcceptRanges": "bytes", "ContentType": "text/html", "LastModified": "Thu, 16 Apr 2015 18:19:14 GMT", "ContentLength": 77, "VersionId": "null", "ETag": "\"30a6ec7e1a9ad79c203d05a589c8b400\"", "Metadata": {} }
  • 如需API詳細資訊,請參閱 命令參考 HeadObject中的 。 AWS CLI

下列程式碼範例示範如何使用 list-bucket-analytics-configurations

AWS CLI

擷取儲存貯體的分析組態清單

以下內容會list-bucket-analytics-configurations擷取指定儲存貯體的分析組態清單。

aws s3api list-bucket-analytics-configurations \ --bucket my-bucket

輸出:

{ "AnalyticsConfigurationList": [ { "StorageClassAnalysis": {}, "Id": "1" } ], "IsTruncated": false }

下列程式碼範例示範如何使用 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 \ --bucket DOC-EXAMPLE-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-TieringAmazon S3

下列程式碼範例示範如何使用 list-bucket-inventory-configurations

AWS CLI

擷取儲存貯體的庫存組態清單

下列list-bucket-inventory-configurations範例列出指定儲存貯體的庫存組態。

aws s3api list-bucket-inventory-configurations \ --bucket my-bucket

輸出:

{ "InventoryConfigurationList": [ { "IsEnabled": true, "Destination": { "S3BucketDestination": { "Format": "ORC", "Bucket": "arn:aws:s3:::my-bucket", "AccountId": "123456789012" } }, "IncludedObjectVersions": "Current", "Id": "1", "Schedule": { "Frequency": "Weekly" } }, { "IsEnabled": true, "Destination": { "S3BucketDestination": { "Format": "CSV", "Bucket": "arn:aws:s3:::my-bucket", "AccountId": "123456789012" } }, "IncludedObjectVersions": "Current", "Id": "2", "Schedule": { "Frequency": "Daily" } } ], "IsTruncated": false }

下列程式碼範例示範如何使用 list-bucket-metrics-configurations

AWS CLI

擷取儲存貯體的指標組態清單

下列list-bucket-metrics-configurations範例會擷取指定儲存貯體的指標組態清單。

aws s3api list-bucket-metrics-configurations \ --bucket my-bucket

輸出:

{ "IsTruncated": false, "MetricsConfigurationList": [ { "Filter": { "Prefix": "logs" }, "Id": "123" }, { "Filter": { "Prefix": "tmp" }, "Id": "234" } ] }

下列程式碼範例示範如何使用 list-buckets

AWS CLI

下列命令使用 list-buckets命令來顯示所有 Amazon S3 儲存貯體的名稱 (跨所有區域):

aws s3api list-buckets --query "Buckets[].Name"

查詢選項會將 的輸出list-buckets向下篩選為僅儲存貯體名稱。

如需儲存貯體的詳細資訊,請參閱Amazon S3 開發人員指南中的使用 Amazon S3 儲存貯體。

  • 如需API詳細資訊,請參閱 命令參考 ListBuckets中的 。 AWS CLI

下列程式碼範例示範如何使用 list-multipart-uploads

AWS CLI

下列命令會列出名為 之儲存貯體的所有作用中分段上傳my-bucket

aws s3api list-multipart-uploads --bucket my-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 中產生儲存成本。完成或中止作用中的分段上傳,以將其部分從您的帳戶中移除。

下列程式碼範例示範如何使用 list-object-versions

AWS CLI

下列命令會擷取名為 之儲存貯體中物件的版本資訊my-bucket

aws s3api list-object-versions --bucket my-bucket --prefix index.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 } ] }

下列程式碼範例示範如何使用 list-objects-v2

AWS CLI

若要取得儲存貯體中的物件清單

下列list-objects-v2範例列出指定儲存貯體中的物件。

aws s3api list-objects-v2 \ --bucket my-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 --bucket text-content --query 'Contents[].{Key: Key, Size: Size}'

此範例使用 --query 引數,將 的輸出list-objects篩選為每個物件的鍵值和大小

如需物件的詳細資訊,請參閱Amazon S3 開發人員指南中的使用 Amazon S3 物件。

  • 如需API詳細資訊,請參閱 命令參考 ListObjects中的 。 AWS CLI

下列程式碼範例示範如何使用 list-parts

AWS CLI

下列命令會列出在儲存貯體 multipart/01中使用 金鑰上傳分段上傳的所有部分my-bucket

aws s3api list-parts --bucket my-bucket --key 'multipart/01' --upload-id dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.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詳細資訊,請參閱 命令參考 ListParts中的 。 AWS CLI

下列程式碼範例示範如何使用 ls

AWS CLI

範例 1:列出所有使用者擁有的儲存貯體

下列ls命令會列出使用者擁有的所有儲存貯體。在此範例中,使用者擁有儲存貯體 mybucketmybucket2。時間戳記是建立儲存貯體的日期,顯示在機器的時區中。此日期可能會在變更儲存貯體時變更,例如編輯儲存貯體政策。請注意,如果 s3:// 用於路徑引數 <S3Uri>,它也會列出所有儲存貯體。

aws s3 ls

輸出:

2013-07-11 17:08:50 mybucket 2013-07-24 14:55:44 mybucket2

範例 2:列出儲存貯體中的所有字首和物件

下列ls命令會在指定的儲存貯體和字首下列出物件和常用字首。在此範例中,使用者擁有mybucket具有物件 test.txt和 的儲存貯體somePrefix/test.txtLastWriteTimeLength是任意的。請注意,由於ls命令與本機檔案系統沒有互動,因此不需要s3://URI配置來解決模稜兩可的情況,而且可以省略。

aws s3 ls s3://mybucket

輸出:

PRE somePrefix/ 2013-07-25 17:06:27 88 test.txt

範例 3:列出特定儲存貯體和字首中的所有字首和物件

下列ls命令會在指定的儲存貯體和字首下列出物件和常用字首。不過,指定的儲存貯體和字首下沒有物件或一般字首。

aws s3 ls s3://mybucket/noExistPrefix

輸出:

None

範例 4:遞迴列出儲存貯體中的所有字首和物件

下列ls命令將遞迴列出儲存貯體中的物件。儲存貯體中的所有內容將依序列出,而不是顯示在輸出PRE dirname/中。

aws s3 ls s3://mybucket \ --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 ls s3://mybucket \ --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 ls s3://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命令會建立儲存貯體。在此範例中,使用者會製作儲存貯體 mybucket。儲存貯體是在使用者組態檔案中指定的區域中建立:

aws s3 mb s3://mybucket

輸出:

make_bucket: s3://mybucket

範例 2:在指定區域中建立儲存貯體

下列mb命令會在 --region 參數指定的區域中建立儲存貯體。在此範例中,使用者在 區域製作儲存貯mybucketus-west-1

aws s3 mb s3://mybucket \ --region us-west-1

輸出:

make_bucket: s3://mybucket
  • 如需API詳細資訊,請參閱 AWS CLI 命令參考 中的 Mb

下列程式碼範例示範如何使用 mv

AWS CLI

範例 1:將本機檔案移至指定的儲存貯體

下列mv命令會將單一檔案移至指定的儲存貯體和金鑰。

aws s3 mv test.txt s3://mybucket/test2.txt

輸出:

move: test.txt to s3://mybucket/test2.txt

範例 2:將物件移至指定的儲存貯體和金鑰

下列mv命令會將單一 s3 物件移至指定的儲存貯體和金鑰。

aws s3 mv s3://mybucket/test.txt s3://mybucket/test2.txt

輸出:

move: s3://mybucket/test.txt to s3://mybucket/test2.txt

範例 3:將 S3 物件移至本機目錄

下列mv命令會將單一物件移至本機指定的檔案。

aws s3 mv s3://mybucket/test.txt test2.txt

輸出:

move: s3://mybucket/test.txt to test2.txt

範例 4:將具有原始名稱的物件移至指定的儲存貯體

下列mv命令會將單一物件移至指定的儲存貯體,同時保留其原始名稱:

aws s3 mv s3://mybucket/test.txt s3://mybucket2/

輸出:

move: s3://mybucket/test.txt to s3://mybucket2/test.txt

範例 5:將儲存貯體中的所有物件和字首移至本機目錄

與 參數 一起傳遞時--recursive,下列mv命令會遞迴地將所有指定字首和儲存貯體下的物件移至指定的目錄。在此範例中,儲存貯體mybucket具有物件 test1.txttest2.txt

aws s3 mv s3://mybucket . \ --recursive

輸出:

move: s3://mybucket/test1.txt to test1.txt move: s3://mybucket/test2.txt to test2.txt

範例 6:將儲存貯體中的所有物件和字首移至本機目錄,但 ``.jpg`` 檔案除外

與 參數 一起傳遞時--recursive,下列mv命令會遞迴移動指定目錄下的所有檔案至指定的儲存貯體和字首,同時使用 --exclude 參數排除某些檔案。在此範例中,目錄myDir具有 檔案test1.txttest2.jpg

aws s3 mv myDir s3://mybucket/ \ --recursive \ --exclude "*.jpg"

輸出:

move: myDir/test1.txt to s3://mybucket2/test1.txt

範例 7:將儲存貯體中的所有物件和字首移至本機目錄,指定的字首除外

與 參數 一起傳遞時--recursive,下列mv命令會遞迴移動指定儲存貯體下的所有物件至另一個儲存貯體,同時使用 --exclude 參數排除某些物件。在此範例中,儲存貯體mybucket具有物件 test1.txtanother/test1.txt

aws s3 mv s3://mybucket/ s3://mybucket2/ \ --recursive \ --exclude "mybucket/another/*"

輸出:

move: s3://mybucket/test1.txt to s3://mybucket2/test1.txt

範例 8:將物件移至指定的儲存貯體,並設定 ACL

下列mv命令會將 設定為 時,將單一物件移至指定的儲存貯體和金鑰ACLpublic-read-write

aws s3 mv s3://mybucket/test.txt s3://mybucket/test2.txt \ --acl public-read-write

輸出:

move: s3://mybucket/test.txt to s3://mybucket/test2.txt

範例 9:將本機檔案移至指定的儲存貯體並授予許可

下列mv命令說明 --grants選項的使用,將讀取存取權授予所有使用者,並完全控制由其電子郵件地址識別的特定使用者。

aws s3 mv file.txt s3://mybucket/ \ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=emailaddress=user@example.com

輸出:

move: file.txt to s3://mybucket/file.txt

範例 10:將檔案移至 S3 存取點

下列mv命令mydoc.txt會將名為 的單一檔案移至名為 的金鑰myaccesspoint上名為 的存取點mykey

aws s3 mv mydoc.txt s3://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:建立預先簽章URL,其中包含 S3 儲存貯體中連結至物件的預設一小時生命週期

下列presign命令URL會為指定儲存貯體和金鑰產生預先簽章,有效期間為一小時。

aws s3 presign s3://DOC-EXAMPLE-BUCKET/test2.txt

輸出:

https://DOC-EXAMPLE-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:建立URL預先簽署的自訂存留期,連結至 S3 儲存貯體中的物件

下列presign命令URL會針對一週內有效的指定儲存貯體和金鑰產生預先簽章。

aws s3 presign s3://DOC-EXAMPLE-BUCKET/test2.txt \ --expires-in 604800

輸出:

https://DOC-EXAMPLE-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 命令參考 中的預先簽署

下列程式碼範例示範如何使用 put-bucket-accelerate-configuration

AWS CLI

設定儲存貯體的加速組態

下列put-bucket-accelerate-configuration範例會啟用指定儲存貯體的加速組態。

aws s3api put-bucket-accelerate-configuration \ --bucket my-bucket \ --accelerate-configuration Status=Enabled

此命令不會產生輸出。

下列程式碼範例示範如何使用 put-bucket-acl

AWS CLI

此範例full control會授予兩個 AWS 使用者 (user1@example.comuser2@example.com) 和read權限給所有人:

aws s3api put-bucket-acl --bucket MyBucket --grant-full-control emailaddress=user1@example.com,emailaddress=user2@example.com --grant-read uri=http://acs.amazonaws.com/groups/global/AllUsers

如需自訂的詳細資訊,請參閱 http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html ACLs(s3api ACL命令,例如 put-bucket-acl,使用相同的短期引數符號)。

  • 如需API詳細資訊,請參閱 命令參考 PutBucketAcl中的 。 AWS CLI

下列程式碼範例示範如何使用 put-bucket-analytics-configuration

AWS CLI

設定儲存貯體的分析組態

下列put-bucket-analytics-configuration範例會設定指定儲存貯體的分析。

aws s3api put-bucket-analytics-configuration \ --bucket my-bucket --id 1 \ --analytics-configuration '{"Id": "1","StorageClassAnalysis": {}}'

此命令不會產生輸出。

下列程式碼範例示範如何使用 put-bucket-cors

AWS CLI

下列範例會啟用來自 www.example.com PUTPOST、 和 DELETE 請求,並啟用來自任何網域的GET請求:

aws s3api put-bucket-cors --bucket MyBucket --cors-configuration file://cors.json cors.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詳細資訊,請參閱 命令參考 PutBucketCors中的 。 AWS CLI

下列程式碼範例示範如何使用 put-bucket-encryption

AWS CLI

設定儲存貯體的伺服器端加密

下列put-bucket-encryption範例會將AES256加密設定為指定儲存貯體的預設值。

aws s3api put-bucket-encryption \ --bucket my-bucket \ --server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]}'

此命令不會產生輸出。

下列程式碼範例示範如何使用 put-bucket-intelligent-tiering-configuration

AWS CLI

更新儲存貯體上的 S3 Intelligent-Tiering 組態

下列put-bucket-intelligent-tiering-configuration範例會在儲存貯體 ExampleConfig上更新名為 的 S3 Intelligent-Tiering 組態。組態會在 90 天後將未在字首影像下存取的物件轉換為封存存取,並在 180 天後將 Deep Archive Access 轉換為封存存取。

aws s3api put-bucket-intelligent-tiering-configuration \ --bucket DOC-EXAMPLE-BUCKET \ --id "ExampleConfig" \ --intelligent-tiering-configuration file://intelligent-tiering-configuration.json

intelligent-tiering-configuration.json 的內容:

{ "Id": "ExampleConfig", "Status": "Enabled", "Filter": { "Prefix": "images" }, "Tierings": [ { "Days": 90, "AccessTier": "ARCHIVE_ACCESS" }, { "Days": 180, "AccessTier": "DEEP_ARCHIVE_ACCESS" } ] }

此命令不會產生輸出。

如需詳細資訊,請參閱 Amazon S3 使用者指南 中的在現有儲存貯體上設定物件擁有權

下列程式碼範例示範如何使用 put-bucket-inventory-configuration

AWS CLI

範例 1:設定儲存貯體的庫存組態

下列put-bucket-inventory-configuration範例會設定儲存貯體 的每週 ORC格式化庫存報告my-bucket

aws s3api put-bucket-inventory-configuration \ --bucket my-bucket \ --id 1 \ --inventory-configuration '{"Destination": { "S3BucketDestination": { "AccountId": "123456789012", "Bucket": "arn:aws:s3:::my-bucket", "Format": "ORC" }}, "IsEnabled": true, "Id": "1", "IncludedObjectVersions": "Current", "Schedule": { "Frequency": "Weekly" }}'

此命令不會產生輸出。

範例 2:設定儲存貯體的庫存組態

下列put-bucket-inventory-configuration範例會為儲存貯體 設定每日CSV格式的庫存報告my-bucket

aws s3api put-bucket-inventory-configuration \ --bucket my-bucket \ --id 2 \ --inventory-configuration '{"Destination": { "S3BucketDestination": { "AccountId": "123456789012", "Bucket": "arn:aws:s3:::my-bucket", "Format": "CSV" }}, "IsEnabled": true, "Id": "2", "IncludedObjectVersions": "Current", "Schedule": { "Frequency": "Daily" }}'

此命令不會產生輸出。

下列程式碼範例示範如何使用 put-bucket-lifecycle-configuration

AWS CLI

下列命令會將生命週期組態套用至名為 的儲存貯體my-bucket

aws s3api put-bucket-lifecycle-configuration --bucket my-bucket --lifecycle-configuration file://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 使用者指南 中的指定參數值。

下列程式碼範例示範如何使用 put-bucket-lifecycle

AWS CLI

下列命令會將生命週期組態套用至儲存貯體 my-bucket

aws s3api put-bucket-lifecycle --bucket my-bucket --lifecycle-configuration file://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 使用者指南 中的指定參數值。

上述範例中的每個規則都會指定其套用的政策 (TransitionExpiration) 和檔案字首 (資料夾名稱)。您也可以透過指定空白字首來建立套用至整個儲存貯體的規則:

{ "Rules": [ { "ID": "Move to Glacier after sixty days (all objects in bucket)", "Prefix": "", "Status": "Enabled", "Transition": { "Days": 60, "StorageClass": "GLACIER" } } ] }

下列程式碼範例示範如何使用 put-bucket-logging

AWS CLI

範例 1:設定儲存貯體政策記錄

下列put-bucket-logging範例會設定 的記錄政策MyBucket。首先,使用 put-bucket-policy命令在儲存貯體政策中授予記錄服務主體許可。

aws s3api put-bucket-policy \ --bucket MyBucket \ --policy file://policy.json

policy.json 的內容:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ServerAccessLogsPolicy", "Effect": "Allow", "Principal": {"Service": "logging.s3.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::MyBucket/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 \ --bucket MyBucket \ --bucket-logging-status file://logging.json

logging.json 的內容:

{ "LoggingEnabled": { "TargetBucket": "MyBucket", "TargetPrefix": "Logs/" } }

需要 put-bucket-policy命令才能將s3:PutObject許可授予記錄服務主體。

如需詳細資訊,請參閱 Amazon S3 使用者指南 中的 Amazon S3 伺服器存取日誌Amazon S3

範例 2:設定儲存貯體政策,以記錄僅單一使用者的存取

下列put-bucket-logging範例會設定 的記錄政策MyBucket。 AWS 使用者 bob@example.com 將完全控制日誌檔案,而且其他人都無法存取。首先,使用 授予 S3 許可put-bucket-acl

aws s3api put-bucket-acl \ --bucket MyBucket \ --grant-write URI=http://acs.amazonaws.com/groups/s3/LogDelivery \ --grant-read-acp URI=http://acs.amazonaws.com/groups/s3/LogDelivery

然後使用 套用記錄政策put-bucket-logging

aws s3api put-bucket-logging \ --bucket MyBucket \ --bucket-logging-status file://logging.json

logging.json 的內容:

{ "LoggingEnabled": { "TargetBucket": "MyBucket", "TargetPrefix": "MyBucketLogs/", "TargetGrants": [ { "Grantee": { "Type": "AmazonCustomerByEmail", "EmailAddress": "bob@example.com" }, "Permission": "FULL_CONTROL" } ] } }

put-bucket-acl 命令是必要的,以授予 S3 的日誌交付系統必要的許可 (寫入和讀取 Ap 許可)。

如需詳細資訊,請參閱 Amazon S3 開發人員指南 中的 Amazon S3 伺服器存取日誌Amazon S3

  • 如需API詳細資訊,請參閱 命令參考 PutBucketLogging中的 。 AWS CLI

下列程式碼範例示範如何使用 put-bucket-metrics-configuration

AWS CLI

設定儲存貯體的指標組態

下列put-bucket-metrics-configuration範例會為指定的儲存貯體設定 ID 為 123 的指標組態。

aws s3api put-bucket-metrics-configuration \ --bucket my-bucket \ --id 123 \ --metrics-configuration '{"Id": "123", "Filter": {"Prefix": "logs"}}'

此命令不會產生輸出。

下列程式碼範例示範如何使用 put-bucket-notification-configuration

AWS CLI

啟用儲存貯體的指定通知

下列put-bucket-notification-configuration範例會將通知組態套用至名為 的儲存貯體my-bucket。檔案notification.json是目前資料夾中JSON的文件,指定要監控SNS的主題和事件類型。

aws s3api put-bucket-notification-configuration \ --bucket my-bucket \ --notification-configuration file://notification.json

notification.json 的內容:

{ "TopicConfigurations": [ { "TopicArn": "arn:aws:sns:us-west-2:123456789012:s3-notification-topic", "Events": [ "s3:ObjectCreated:*" ] } ] }

SNS 主題必須連接IAM允許 Amazon S3 發佈的政策。

{ "Version": "2008-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:*:*:my-bucket" } } } ] }

下列程式碼範例示範如何使用 put-bucket-notification

AWS CLI

會將通知組態套用至名為 的儲存貯體my-bucket

aws s3api put-bucket-notification --bucket my-bucket --notification-configuration file://notification.json

檔案notification.json是目前資料夾中JSON的文件,指定要監控SNS的主題和事件類型:

{ "TopicConfiguration": { "Event": "s3:ObjectCreated:*", "Topic": "arn:aws:sns:us-west-2:123456789012:s3-notification-topic" } }

SNS 主題必須連接允許 Amazon S3 發佈至其IAM的政策:

{ "Version": "2008-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:my-bucket", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:my-bucket" } } } ] }

下列程式碼範例示範如何使用 put-bucket-ownership-controls

AWS CLI

更新儲存貯體的儲存貯體擁有權設定

下列put-bucket-ownership-controls範例會更新儲存貯體的儲存貯體擁有權設定。

aws s3api put-bucket-ownership-controls \ --bucket DOC-EXAMPLE-BUCKET \ --ownership-controls="Rules=[{ObjectOwnership=BucketOwnerEnforced}]"

此命令不會產生輸出。

如需詳細資訊,請參閱 Amazon S3 使用者指南 中的在現有儲存貯體上設定物件擁有權

下列程式碼範例示範如何使用 put-bucket-policy

AWS CLI

此範例允許所有使用者擷取 中的任何物件,MyBucket除了 中的物件MySecretFolder。它還將 putdelete 許可授予 AWS 帳戶的根使用者1234-5678-9012

aws s3api put-bucket-policy --bucket MyBucket --policy file://policy.json policy.json: { "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::MyBucket/*" }, { "Effect": "Deny", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::MyBucket/MySecretFolder/*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": [ "s3:DeleteObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::MyBucket/*" } ] }
  • 如需API詳細資訊,請參閱 命令參考 PutBucketPolicy中的 。 AWS CLI

下列程式碼範例示範如何使用 put-bucket-replication

AWS CLI

設定 S3 儲存貯體的複寫

下列put-bucket-replication範例會將複寫組態套用至指定的 S3 儲存貯體。

aws s3api put-bucket-replication \ --bucket AWSDOC-EXAMPLE-BUCKET1 \ --replication-configuration file://replication.json

replication.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:::AWSDOC-EXAMPLE-BUCKET2" } } ] }

目的地儲存貯體必須已啟用版本控制。指定的角色必須具有寫入目的地儲存貯體的許可,並具有允許 Amazon S3 擔任該角色的信任關係。

角色許可政策範例:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET1" ] }, { "Effect": "Allow", "Action": [ "s3:GetObjectVersion", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET1/*" ] }, { "Effect": "Allow", "Action": [ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags" ], "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET2/*" } ] }

信任關係政策範例:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

此命令不會產生輸出。

如需詳細資訊,請參閱 Amazon Simple Storage Service 主控台使用者指南 中的此主題標題

下列程式碼範例示範如何使用 put-bucket-request-payment

AWS CLI

範例 1:啟用儲存貯體的 ``requester pays`` 組態

下列put-bucket-request-payment範例requester pays會針對指定的儲存貯體啟用 。

aws s3api put-bucket-request-payment \ --bucket my-bucket \ --request-payment-configuration '{"Payer":"Requester"}'

此命令不會產生輸出。

範例 2:停用儲存貯體的 ``requester pays`` 組態

下列put-bucket-request-payment範例requester pays會針對指定的儲存貯體停用 。

aws s3api put-bucket-request-payment \ --bucket my-bucket \ --request-payment-configuration '{"Payer":"BucketOwner"}'

此命令不會產生輸出。

下列程式碼範例示範如何使用 put-bucket-tagging

AWS CLI

下列命令會將標記組態套用至名為 的儲存貯體my-bucket

aws s3api put-bucket-tagging --bucket my-bucket --tagging file://tagging.json

檔案tagging.json是目前資料夾中JSON的文件,指定標籤:

{ "TagSet": [ { "Key": "organization", "Value": "marketing" } ] }

my-bucket直接從命令列將標記組態套用至 :

aws s3api put-bucket-tagging --bucket my-bucket --tagging 'TagSet=[{Key=organization,Value=marketing}]'
  • 如需API詳細資訊,請參閱 命令參考 PutBucketTagging中的 。 AWS CLI

下列程式碼範例示範如何使用 put-bucket-versioning

AWS CLI

下列命令會在名為 的儲存貯體上啟用版本控制my-bucket

aws s3api put-bucket-versioning --bucket my-bucket --versioning-configuration Status=Enabled

下列命令會啟用版本控制,並使用 mfa 程式碼

aws s3api put-bucket-versioning --bucket my-bucket --versioning-configuration Status=Enabled --mfa "SERIAL 123456"

下列程式碼範例示範如何使用 put-bucket-website

AWS CLI

會將靜態網站組態套用至名為 的儲存貯體my-bucket

aws s3api put-bucket-website --bucket my-bucket --website-configuration file://website.json

檔案website.json是目前資料夾中JSON的文件,用於指定網站的索引和錯誤頁面:

{ "IndexDocument": { "Suffix": "index.html" }, "ErrorDocument": { "Key": "error.html" } }
  • 如需API詳細資訊,請參閱 命令參考 PutBucketWebsite中的 。 AWS CLI

下列程式碼範例示範如何使用 put-object-acl

AWS CLI

下列命令full control會授予兩個 AWS 使用者 (user1@example.comuser2@example.com) 和read許可給所有人:

aws s3api put-object-acl --bucket MyBucket --key file.txt --grant-full-control emailaddress=user1@example.com,emailaddress=user2@example.com --grant-read uri=http://acs.amazonaws.com/groups/global/AllUsers

如需自訂的詳細資訊,請參閱 http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html ACLs(s3api ACL命令,例如 put-object-acl,使用相同的短期引數符號)。

  • 如需API詳細資訊,請參閱 命令參考 PutObjectAcl中的 。 AWS CLI

下列程式碼範例示範如何使用 put-object-legal-hold

AWS CLI

將法務保存套用至物件

下列put-object-legal-hold範例會在物件 上設定法務保存doc1.rtf

aws s3api put-object-legal-hold \ --bucket my-bucket-with-object-lock \ --key doc1.rtf \ --legal-hold Status=ON

此命令不會產生輸出。

下列程式碼範例示範如何使用 put-object-lock-configuration

AWS CLI

在儲存貯體上設定物件鎖定組態

下列put-object-lock-configuration範例會在指定的儲存貯體上設定 50 天物件鎖定。

aws s3api put-object-lock-configuration \ --bucket my-bucket-with-object-lock \ --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 }}}'

此命令不會產生輸出。

下列程式碼範例示範如何使用 put-object-retention

AWS CLI

設定物件的物件保留組態

下列put-object-retention範例會設定指定物件的物件保留組態,直到 2025-01-01。

aws s3api put-object-retention \ --bucket my-bucket-with-object-lock \ --key doc1.rtf \ --retention '{ "Mode": "GOVERNANCE", "RetainUntilDate": "2025-01-01T00:00:00" }'

此命令不會產生輸出。

下列程式碼範例示範如何使用 put-object-tagging

AWS CLI

在物件上設定標籤

下列put-object-tagging範例會設定具有 金鑰的標籤,designation以及指定物件confidential上的 值。

aws s3api put-object-tagging \ --bucket my-bucket \ --key doc1.rtf \ --tagging '{"TagSet": [{ "Key": "designation", "Value": "confidential" }]}'

此命令不會產生輸出。

下列put-object-tagging範例會在指定的物件上設定多個標籤集。

aws s3api put-object-tagging \ --bucket my-bucket-example \ --key doc3.rtf \ --tagging '{"TagSet": [{ "Key": "designation", "Value": "confidential" }, { "Key": "department", "Value": "finance" }, { "Key": "team", "Value": "payroll" } ]}'

此命令不會產生輸出。

  • 如需API詳細資訊,請參閱 命令參考 PutObjectTagging中的 。 AWS CLI

下列程式碼範例示範如何使用 put-object

AWS CLI

下列範例使用 put-object命令將物件上傳至 Amazon S3:

aws s3api put-object --bucket text-content --key dir-1/my_images.tar.bz2 --body my_images.tar.bz2

下列範例顯示影片檔案的上傳 (影片檔案是使用 Windows 檔案系統語法來指定。):

aws s3api put-object --bucket text-content --key dir-1/big-video-file.mp4 --body e:\media\videos\f-sharp-3-data-services.mp4

如需上傳物件的詳細資訊,請參閱 Amazon S3 開發人員指南 中的上傳物件。

  • 如需API詳細資訊,請參閱 命令參考 PutObject中的 。 AWS CLI

下列程式碼範例示範如何使用 put-public-access-block

AWS CLI

設定儲存貯體的區塊公有存取組態

下列put-public-access-block範例會為指定的儲存貯體設定限制性區塊公有存取組態。

aws s3api put-public-access-block \ --bucket my-bucket \ --public-access-block-configuration "BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true"

此命令不會產生輸出。

下列程式碼範例示範如何使用 rb

AWS CLI

範例 1:刪除儲存貯體

下列rb命令會移除儲存貯體。在此範例中,使用者的儲存貯體為 mybucket。請注意,儲存貯體必須是空的,才能移除:

aws s3 rb s3://mybucket

輸出:

remove_bucket: mybucket

範例 2:強制刪除儲存貯體

下列rb命令會使用 --force 參數,先移除儲存貯體中的所有物件,然後移除儲存貯體本身。在此範例中,使用者的儲存貯體為 ,mybucket且 中的物件mybuckettest1.txttest2.txt

aws s3 rb s3://mybucket \ --force

輸出:

delete: s3://mybucket/test1.txt delete: s3://mybucket/test2.txt remove_bucket: mybucket
  • 如需API詳細資訊,請參閱 AWS CLI 命令參考 中的 Rb

下列程式碼範例示範如何使用 restore-object

AWS CLI

建立物件的還原請求

下列restore-object範例會為儲存貯體還原指定的 Amazon S3 Glacier 物件 my-glacier-bucket 10 天。

aws s3api restore-object \ --bucket my-glacier-bucket \ --key doc1.rtf \ --restore-request Days=10

此命令不會產生輸出。

  • 如需API詳細資訊,請參閱 命令參考 RestoreObject中的 。 AWS CLI

下列程式碼範例示範如何使用 rm

AWS CLI

範例 1:刪除 S3 物件

下列rm命令會刪除單一 s3 物件:

aws s3 rm s3://mybucket/test2.txt

輸出:

delete: s3://mybucket/test2.txt

範例 2:刪除儲存貯體中的所有內容

下列rm命令會在與 參數 一起傳遞時,遞迴刪除指定儲存貯體和字首下的所有物件--recursive。在此範例中,儲存貯體mybucket包含物件 test1.txttest2.txt

aws s3 rm s3://mybucket \ --recursive

輸出:

delete: s3://mybucket/test1.txt delete: s3://mybucket/test2.txt

範例 3:刪除儲存貯體中的所有內容,但 ``.jpg`` 檔案除外

使用 參數--recursive排除某些物件時,下列rm命令會遞迴刪除指定儲存貯體和字首下的所有物件--exclude。在此範例中,儲存貯體mybucket具有物件 test1.txttest2.jpg

aws s3 rm s3://mybucket/ \ --recursive \ --exclude "*.jpg"

輸出:

delete: s3://mybucket/test1.txt

範例 4:刪除儲存貯體中的所有內容,指定字首下的物件除外

下列rm命令會在與 參數一起傳遞時,遞迴刪除指定儲存貯體和字首下的所有物件,--recursive同時使用 --exclude 參數排除特定字首下的所有物件。在此範例中,儲存貯體mybucket具有物件 test1.txtanother/test.txt

aws s3 rm s3://mybucket/ \ --recursive \ --exclude "another/*"

輸出:

delete: s3://mybucket/test1.txt

範例 5:從 S3 存取點刪除物件

下列rm命令會從存取點 (mykey) 刪除單一物件 (myaccesspoint)。::下列rm命令會從存取點 (mykey) 刪除單一物件 ()myaccesspoint

aws s3 rm s3://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 \ --bucket my-bucket \ --key my-data-file.csv \ --expression "select * from s3object limit 100" \ --expression-type 'SQL' \ --input-serialization '{"CSV": {}, "CompressionType": "NONE"}' \ --output-serialization '{"CSV": {}}' "output.csv"

此命令不會產生輸出。

下列程式碼範例示範如何使用 sync

AWS CLI

範例 1:將所有本機物件同步至指定的儲存貯體

下列sync命令會透過將本機檔案上傳至 S3,將物件從本機目錄同步至指定的字首和儲存貯體。如果本機檔案的大小與 S3 物件的大小不同、本機檔案的上次修改時間比 S3 物件的上次修改時間更新,或本機檔案不存在於指定的儲存貯體和字首下方,則需要上傳本機檔案。在此範例中,使用者會將儲存貯體同步mybucket至本機目前目錄。本機目前目錄包含 檔案test.txttest2.txt。儲存貯體mybucket不包含物件。

aws s3 sync . s3://mybucket

輸出:

upload: test.txt to s3://mybucket/test.txt upload: test2.txt to s3://mybucket/test2.txt

範例 2:將所有 S3 物件從指定的 S3 儲存貯體同步到另一個儲存貯體

下列sync命令會透過複製 S3 物件,將指定字首和儲存貯體下的物件同步至另一個指定字首和儲存貯體下的物件。如果兩個 S3S3 物件的大小不同、來源的上次修改時間比目的地的上次修改時間更新,或 S3 物件不存在於指定的儲存貯體和字首目的地下方,則 S3 物件將需要複製。

在此範例中,使用者會將儲存貯體同步mybucket至儲存貯體 mybucket2。儲存貯體mybucket包含物件 test.txttest2.txt。儲存貯體mybucket2不包含物件:

aws s3 sync s3://mybucket s3://mybucket2

輸出:

copy: s3://mybucket/test.txt to s3://mybucket2/test.txt copy: s3://mybucket/test2.txt to s3://mybucket2/test2.txt

範例 3:將所有 S3 物件從指定的 S3 儲存貯體同步至本機目錄

下列sync命令會透過下載 S3 物件,將檔案從指定的 S3 儲存貯體同步到本機目錄。如果 S3S3 物件的大小與本機檔案的大小不同、S3 物件的上次修改時間比本機檔案的上次修改時間更新,或本機目錄中不存在 S3 物件,則 S3 物件將需要下載。請注意,從 S3 下載物件時,本機檔案的上次修改時間會變更為 S3 物件的上次修改時間。在此範例中,使用者會將儲存貯體同步mybucket至目前的本機目錄。儲存貯體mybucket包含物件 test.txttest2.txt。目前的本機目錄沒有檔案:

aws s3 sync s3://mybucket .

輸出:

download: s3://mybucket/test.txt to test.txt download: s3://mybucket/test2.txt to test2.txt

範例 4:將所有本機物件同步至指定的儲存貯體,並刪除不相符的所有檔案

下列sync命令會將指定字首和儲存貯體下的物件同步至本機目錄中的檔案,方法是將本機檔案上傳至 S3。由於 --delete 參數,任何存在於指定字首和儲存貯體下但本機目錄中不存在的檔案都會遭到刪除。在此範例中,使用者會將儲存貯體同步mybucket至本機目前目錄。本機目前目錄包含 檔案test.txttest2.txt。儲存貯體mybucket包含物件 test3.txt

aws s3 sync . s3://mybucket \ --delete

輸出:

upload: test.txt to s3://mybucket/test.txt upload: test2.txt to s3://mybucket/test2.txt delete: s3://mybucket/test3.txt

範例 5:將所有本機物件同步至指定的儲存貯體,但 ``.jpg`` 檔案除外

下列sync命令會將指定字首和儲存貯體下的物件同步至本機目錄中的檔案,方法是將本機檔案上傳至 S3。由於 --exclude 參數,所有符合 S3 和本機中現有模式的檔案都會從同步中排除。在此範例中,使用者會將儲存貯體同步mybucket至本機目前目錄。本機目前目錄包含 檔案test.jpgtest2.txt。儲存貯體mybucket包含與本機 test.jpg大小不同的物件test.jpg

aws s3 sync . s3://mybucket \ --exclude "*.jpg"

輸出:

upload: test2.txt to s3://mybucket/test2.txt

範例 6:將所有本機物件同步至指定的儲存貯體,但 ``.jpg`` 檔案除外

下列sync命令會透過下載 S3 物件,將本機目錄下的檔案同步至指定字首和儲存貯體下的物件。此範例使用 --exclude 參數旗標,從sync命令中排除指定的目錄和 S3 字首。在此範例中,使用者會將本機目前目錄同步至儲存貯體 mybucket。本機目前目錄包含 檔案test.txtanother/test2.txt。儲存貯體mybucket包含物件 another/test5.txttest1.txt

aws s3 sync s3://mybucket/ . \ --exclude "*another/*"

輸出:

download: s3://mybucket/test1.txt to test1.txt

範例 7:同步不同區域中儲存貯體之間的所有物件

下列sync命令會同步不同區域中兩個儲存貯體之間的檔案:

aws s3 sync s3://my-us-west-2-bucket s3://my-us-east-1-bucket \ --source-region us-west-2 \ --region us-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 命令參考 中的同步

下列程式碼範例示範如何使用 upload-part-copy

AWS CLI

將現有物件中的資料複製為資料來源,以上傳物件的一部分

下列upload-part-copy範例會將現有物件中的資料複製為資料來源,以上傳部分。

aws s3api upload-part-copy \ --bucket my-bucket \ --key "Map_Data_June.mp4" \ --copy-source "my-bucket/copy_of_Map_Data_June.mp4" \ --part-number 1 \ --upload-id "bq0tdE1CDpWQYRPLHuNG50xAT6pA5D.m_RiBy0ggOH6b13pVRY7QjvLlf75iFdJqp_2wztk5hvpUM2SesXgrzbehG5hViyktrfANpAD0NO.Nk3XREBqvGeZF6U3ipiSm"

輸出:

{ "CopyPartResult": { "LastModified": "2019-12-13T23:16:03.000Z", "ETag": "\"711470fc377698c393d94aed6305e245\"" } }
  • 如需API詳細資訊,請參閱 命令參考 UploadPartCopy中的 。 AWS CLI

下列程式碼範例示範如何使用 upload-part

AWS CLI

下列命令會上傳使用 create-multipart-upload命令起始的分段上傳中的第一個部分:

aws s3api upload-part --bucket my-bucket --key 'multipart/01' --part-number 1 --body part01 --upload-id "dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R"

body 選項會取得本機檔案的名稱或路徑以進行上傳 (請勿使用 檔案:// 字首)。最小零件大小為 5 MB。上傳 ID 由 傳回create-multipart-upload,也可以使用 擷取list-multipart-uploads。當您建立分段上傳時,系統會指定儲存貯體和金鑰。

輸出:

{ "ETag": "\"e868e0f4719e394144ef36531ee6824c\"" }

儲存每個部分ETag的值以供稍後使用。他們需要完成分段上傳。

  • 如需API詳細資訊,請參閱 命令參考 UploadPart中的 。 AWS CLI

下列程式碼範例示範如何使用 website

AWS CLI

將 S3 儲存貯體設定為靜態網站

下列命令會設定my-bucket名為靜態網站的儲存貯體。索引文件選項指定訪客導覽至網站 時,將導向到my-bucket其中的檔案URL。在此情況下,儲存貯體位於 us-west-2 區域中,因此網站會出現在 http://my-bucket.s3-website-us-west-2.amazonaws.com

出現在靜態網站上的儲存貯體中的所有檔案都必須設定為允許訪客開啟。檔案許可會與儲存貯體網站組態分開設定。

aws s3 website s3://my-bucket/ \ --index-document index.html \ --error-document error.html

如需在 Amazon S3 中託管靜態網站的資訊,請參閱 Amazon Simple Storage Service 開發人員指南 中的託管靜態網站

  • 如需API詳細資訊,請參閱 AWS CLI 命令參考 中的網站