使用 的 Amazon S3 控制範例 AWS CLI - AWS SDK 程式碼範例

文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的 GitHub 範例。

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

使用 的 Amazon S3 控制範例 AWS CLI

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

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

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

主題

動作

下列程式碼範例示範如何使用 create-access-point

AWS CLI

建立存取點

下列create-access-point範例會為帳戶 123456789012 business-records中的儲存貯體建立名為 finance-ap的存取點。在執行此範例之前,請將存取點名稱、儲存貯體名稱和帳戶號碼取代為適用於您的使用案例的值。

aws s3control create-access-point \ --account-id 123456789012 \ --bucket business-records \ --name finance-ap

此命令不會產生輸出。

如需詳細資訊,請參閱 Amazon Simple Storage Service 開發人員指南中的建立存取點

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

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

AWS CLI

建立 Amazon S3 批次操作任務

下列create-job範例會建立 Amazon S3 批次操作任務,將物件標記為 confidential` in the bucket ``employee-records

aws s3control create-job \ --account-id 123456789012 \ --operation '{"S3PutObjectTagging": { "TagSet": [{"Key":"confidential", "Value":"true"}] }}' \ --report '{"Bucket":"arn:aws:s3:::employee-records-logs","Prefix":"batch-op-create-job", "Format":"Report_CSV_20180820","Enabled":true,"ReportScope":"AllTasks"}' \ --manifest '{"Spec":{"Format":"S3BatchOperations_CSV_20180820","Fields":["Bucket","Key"]},"Location":{"ObjectArn":"arn:aws:s3:::employee-records-logs/inv-report/7a6a9be4-072c-407e-85a2-ec3e982f773e.csv","ETag":"69f52a4e9f797e987155d9c8f5880897"}}' \ --priority 42 \ --role-arn arn:aws:iam::123456789012:role/S3BatchJobRole

輸出:

{ "JobId": "93735294-df46-44d5-8638-6356f335324e" }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 CreateJob

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

AWS CLI

若要刪除存取點政策

下列delete-access-point-policy範例會從帳戶 123456789012 finance-ap中名為 的存取點刪除存取點政策。在執行此範例之前,請將存取點名稱和帳戶號碼取代為您的使用案例的適當值。

aws s3control delete-access-point-policy \ --account-id 123456789012 \ --name finance-ap

此命令不會產生輸出。

如需詳細資訊,請參閱 Amazon Simple Storage Service 開發人員指南中的使用 Amazon S3 存取點管理資料存取

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

AWS CLI

刪除存取點

下列delete-access-point範例會刪除帳戶 123456789012 finance-ap中名為 的存取點。在執行此範例之前,請將存取點名稱和帳戶號碼取代為您的使用案例的適當值。

aws s3control delete-access-point \ --account-id 123456789012 \ --name finance-ap

此命令不會產生輸出。

如需詳細資訊,請參閱 Amazon Simple Storage Service 開發人員指南中的使用 Amazon S3 存取點管理資料存取

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

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

AWS CLI

刪除帳戶的封鎖公有存取設定

下列delete-public-access-block範例會刪除指定帳戶的封鎖公開存取設定。

aws s3control delete-public-access-block \ --account-id 123456789012

此命令不會產生輸出。

下列程式碼範例示範如何使用 describe-job

AWS CLI

描述 Amazon S3 批次操作任務

以下describe-job提供指定批次操作任務的組態參數和狀態。

aws s3control describe-job \ --account-id 123456789012 \ --job-id 93735294-df46-44d5-8638-6356f335324e

輸出:

{ "Job": { "TerminationDate": "2019-10-03T21:49:53.944Z", "JobId": "93735294-df46-44d5-8638-6356f335324e", "FailureReasons": [], "Manifest": { "Spec": { "Fields": [ "Bucket", "Key" ], "Format": "S3BatchOperations_CSV_20180820" }, "Location": { "ETag": "69f52a4e9f797e987155d9c8f5880897", "ObjectArn": "arn:aws:s3:::employee-records-logs/inv-report/7a6a9be4-072c-407e-85a2-ec3e982f773e.csv" } }, "Operation": { "S3PutObjectTagging": { "TagSet": [ { "Value": "true", "Key": "confidential" } ] } }, "RoleArn": "arn:aws:iam::123456789012:role/S3BatchJobRole", "ProgressSummary": { "TotalNumberOfTasks": 8, "NumberOfTasksFailed": 0, "NumberOfTasksSucceeded": 8 }, "Priority": 42, "Report": { "ReportScope": "AllTasks", "Format": "Report_CSV_20180820", "Enabled": true, "Prefix": "batch-op-create-job", "Bucket": "arn:aws:s3:::employee-records-logs" }, "JobArn": "arn:aws:s3:us-west-2:123456789012:job/93735294-df46-44d5-8638-6356f335324e", "CreationTime": "2019-10-03T21:48:48.048Z", "Status": "Complete" } }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DescribeJob

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

AWS CLI

擷取存取點政策狀態

下列get-access-point-policy-status範例會擷取帳戶 123456789012 finance-ap中名為 之存取點的存取點政策狀態。存取點政策狀態會指出存取點的政策是否允許公開存取。在執行此範例之前,請將存取點名稱和帳戶號碼取代為您的使用案例的適當值。

aws s3control get-access-point-policy-status \ --account-id 123456789012 \ --name finance-ap

輸出:

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

如需存取點政策何時被視為公有的詳細資訊,請參閱 Amazon Simple Storage Service 開發人員指南中的「公有」意義

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

AWS CLI

擷取存取點政策

下列get-access-point-policy範例會從帳戶 123456789012 finance-ap中名為 的存取點擷取存取點政策。在執行此範例之前,請將存取點名稱和帳戶號碼取代為您的使用案例的適當值。

aws s3control get-access-point-policy \ --account-id 123456789012 \ --name finance-ap

輸出:

{ "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:role/Admin\"},\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:us-west-2:123456789012:accesspoint/finance-ap/object/records/*\"}]}" }

如需詳細資訊,請參閱 Amazon Simple Storage Service 開發人員指南中的使用 Amazon S3 存取點管理資料存取

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

AWS CLI

擷取存取點組態詳細資訊

下列get-access-point範例會擷取帳戶 123456789012 finance-ap中名為 之存取點的組態詳細資訊。在執行此範例之前,請將存取點名稱和帳戶號碼取代為您的使用案例的適當值。

aws s3control get-access-point \ --account-id 123456789012 \ --name finance-ap

輸出:

{ "Name": "finance-ap", "Bucket": "business-records", "NetworkOrigin": "Internet", "PublicAccessBlockConfiguration": { "BlockPublicAcls": false, "IgnorePublicAcls": false, "BlockPublicPolicy": false, "RestrictPublicBuckets": false }, "CreationDate": "2020-01-01T00:00:00Z" }

如需詳細資訊,請參閱 Amazon Simple Storage Service 開發人員指南中的使用 Amazon S3 存取點管理資料存取

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

下列程式碼範例示範如何使用 get-multi-region-access-point-routes

AWS CLI

若要查詢目前的多區域存取點路由組態

下列get-multi-region-access-point-routes範例會傳回指定多區域存取點的目前路由組態。

aws s3control get-multi-region-access-point-routes \ --region Region \ --account-id 111122223333 \ --mrap MultiRegionAccessPoint_ARN

輸出:

{ "Mrap": "arn:aws:s3::111122223333:accesspoint/0000000000000.mrap", "Routes": [ { "Bucket": "DOC-EXAMPLE-BUCKET-1", "Region": "ap-southeast-2", "TrafficDialPercentage": 100 }, { "Bucket": "DOC-EXAMPLE-BUCKET-2", "Region": "us-west-1", "TrafficDialPercentage": 0 } ] }

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

AWS CLI

列出帳戶的公有區塊存取設定

下列get-public-access-block範例顯示指定帳戶的封鎖公有存取設定。

aws s3control get-public-access-block \ --account-id 123456789012

輸出:

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

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

AWS CLI

範例 1:擷取帳戶所有存取點的清單

下列list-access-points範例顯示連接至帳戶 123456789012 擁有之儲存貯體的所有存取點清單。

aws s3control list-access-points \ --account-id 123456789012

輸出:

{ "AccessPointList": [ { "Name": "finance-ap", "NetworkOrigin": "Internet", "Bucket": "business-records" }, { "Name": "managers-ap", "NetworkOrigin": "Internet", "Bucket": "business-records" }, { "Name": "private-network-ap", "NetworkOrigin": "VPC", "VpcConfiguration": { "VpcId": "1a2b3c" }, "Bucket": "business-records" }, { "Name": "customer-ap", "NetworkOrigin": "Internet", "Bucket": "external-docs" }, { "Name": "public-ap", "NetworkOrigin": "Internet", "Bucket": "external-docs" } ] }

範例 2:擷取儲存貯體的所有存取點清單

下列list-access-points範例會擷取連接至帳戶 123456789012 external-docs擁有之儲存貯體的所有存取點清單。

aws s3control list-access-points \ --account-id 123456789012 \ --bucket external-docs

輸出:

{ "AccessPointList": [ { "Name": "customer-ap", "NetworkOrigin": "Internet", "Bucket": "external-docs" }, { "Name": "public-ap", "NetworkOrigin": "Internet", "Bucket": "external-docs" } ] }

如需詳細資訊,請參閱 Amazon Simple Storage Service 開發人員指南中的使用 Amazon S3 存取點管理資料存取

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

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

AWS CLI

列出帳戶 Amazon S3 批次操作任務

下列list-jobs範例列出指定帳戶的所有最近批次操作任務。

aws s3control list-jobs \ --account-id 123456789012

輸出:

{ "Jobs": [ { "Operation": "S3PutObjectTagging", "ProgressSummary": { "NumberOfTasksFailed": 0, "NumberOfTasksSucceeded": 8, "TotalNumberOfTasks": 8 }, "CreationTime": "2019-10-03T21:48:48.048Z", "Status": "Complete", "JobId": "93735294-df46-44d5-8638-6356f335324e", "Priority": 42 }, { "Operation": "S3PutObjectTagging", "ProgressSummary": { "NumberOfTasksFailed": 0, "NumberOfTasksSucceeded": 0, "TotalNumberOfTasks": 0 }, "CreationTime": "2019-10-03T21:46:07.084Z", "Status": "Failed", "JobId": "3f3c7619-02d3-4779-97f6-1d98dd313108", "Priority": 42 }, ] }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListJobs

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

AWS CLI

設定存取點政策

下列put-access-point-policy範例會將存取點的指定存取點政策放入finance-ap帳戶 123456789012。如果存取點finance-ap已有政策,此命令會將現有政策取代為此命令中指定的政策。在執行此範例之前,請將帳戶號碼、存取點名稱和政策陳述式取代為適用於您的使用案例的適當值。

aws s3control put-access-point-policy \ --account-id 123456789012 \ --name finance-ap \ --policy file://ap-policy.json

ap-policy.json 的內容:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Alice" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/finance-ap/object/Alice/*" } ] }

此命令不會產生輸出。

如需詳細資訊,請參閱 Amazon Simple Storage Service 開發人員指南中的使用 Amazon S3 存取點管理資料存取

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

AWS CLI

編輯帳戶的封鎖公有存取設定

下列put-public-access-block範例會將指定帳戶的所有封鎖公有存取設定切換true為 。

aws s3control put-public-access-block \ --account-id 123456789012 \ --public-access-block-configuration '{"BlockPublicAcls": true, "IgnorePublicAcls": true, "BlockPublicPolicy": true, "RestrictPublicBuckets": true}'

此命令不會產生輸出。

下列程式碼範例示範如何使用 submit-multi-region-access-point-routes

AWS CLI

更新多區域存取點路由組態

下列submit-multi-region-access-point-routes範例會更新多區域存取點DOC-EXAMPLE-BUCKET-2ap-southeast-2區域中 DOC-EXAMPLE-BUCKET-1和 的路由狀態。

aws s3control submit-multi-region-access-point-routes \ --region ap-southeast-2 \ --account-id 111122223333 \ --mrap MultiRegionAccessPoint_ARN \ --route-updates Bucket=DOC-EXAMPLE-BUCKET-1,TrafficDialPercentage=100 Bucket=DOC-EXAMPLE-BUCKET-2,TrafficDialPercentage=0

此命令不會產生輸出。

下列程式碼範例示範如何使用 update-job-priority

AWS CLI

更新 Amazon S3 批次操作任務的任務優先順序

下列update-job-priority範例會將指定的任務更新為新的優先順序。

aws s3control update-job-priority \ --account-id 123456789012 \ --job-id 8d9a18fe-c303-4d39-8ccc-860d372da386 \ --priority 52

輸出:

{ "JobId": "8d9a18fe-c303-4d39-8ccc-860d372da386", "Priority": 52 }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 UpdateJobPriority

下列程式碼範例示範如何使用 update-job-status

AWS CLI

更新 Amazon S3 批次操作任務的狀態

下列update-job-status範例會取消正在等待核准的指定任務。

aws s3control update-job-status \ --account-id 123456789012 \ --job-id 8d9a18fe-c303-4d39-8ccc-860d372da386 \ --requested-job-status Cancelled

輸出:

{ "Status": "Cancelled", "JobId": "8d9a18fe-c303-4d39-8ccc-860d372da386" }

下列update-job-status範例會確認並執行正在等待核准的指定 。

aws s3control update-job-status \ --account-id 123456789012 \ --job-id 5782949f-3301-4fb3-be34-8d5bab54dbca \ --requested-job-status Ready Output:: { "Status": "Ready", "JobId": "5782949f-3301-4fb3-be34-8d5bab54dbca" }

下列update-job-status範例會取消正在執行的指定任務。

aws s3control update-job-status \ --account-id 123456789012 \ --job-id 5782949f-3301-4fb3-be34-8d5bab54dbca \ --requested-job-status Cancelled Output:: { "Status": "Cancelling", "JobId": "5782949f-3301-4fb3-be34-8d5bab54dbca" }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 UpdateJobStatus