AWS CLI を使用する Amazon S3 の例 - AWS Command Line Interface

このドキュメントはバージョン 1 の AWS CLI のみを対象としています。AWS CLI のバージョン 2 に関連するドキュメントについては、バージョン 2 用ユーザーガイドを参照してください。

AWS CLI を使用する Amazon S3 の例

次のコード例は、Amazon S3 で AWS Command Line Interface を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。

アクションはより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。

各例には、完全なソースコードへのリンクが含まれており、そこからコンテキストにおけるコードの設定方法と実行方法についての手順を確認できます。

トピック

アクション

次のコード例は、abort-multipart-upload を使用する方法を示しています。

AWS CLI

指定したマルチパートアップロードを中止するには

次の abort-multipart-upload コマンドは、バケット my-bucket 内のキー multipart/01 のマルチパートアップロードを中止します。

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

このコマンドに必要なアップロード ID create-multipart-upload はによって出力され、list-multipart-uploads で取得することもできます。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「AbortMultipartUpload」を参照してください。

次のコード例は、complete-multipart-upload を使用する方法を示しています。

AWS CLI

次のコマンドは、バケット my-bucket 内のキー multipart/01 のマルチパートアップロードを完了します。

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:// プレフィックスを使用して、mpustruct という名前のローカルフォルダーにあるファイルから JSON 構造を読み込みます。

mpustruct:

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

各パートの ETag 値は、upload-part コマンドを使用してパートをアップロードするたびに出力されます。また、list-parts を呼び出して取得したり、各パートの MD5 チェックサムを取得して計算したりすることもできます。

出力:

{ "ETag": "\"3944a9f7a4faab7f78788ff6210f63f0-3\"", "Bucket": "my-bucket", "Location": "https://my-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-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 の詳細については、「AWS CLI Command Reference」の「CopyObject」を参照してください。

次のコード例は、cp を使用する方法を示しています。

AWS CLI

例 1: ローカルファイルを S3 にコピーする

次の cp コマンドは、1 つのファイルを指定されたバケットとキーにコピーします。

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

出力:

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

例 2: 有効期限のある S3 にローカルファイルをコピーする

次の cp コマンドは、指定された ISO 8601 タイムスタンプで期限切れになる指定されたバケットとキーに 1 つのファイルをコピーします。

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 コマンドは、1 つのオブジェクトを指定されたファイルにローカルにコピーします。

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 コマンドは、ACL を public-read-write に設定しながら、単一の S3 オブジェクトを指定されたバケットとキーにコピーします。

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 コマンドは、URI で識別されるすべてのユーザーに読み取りアクセスを付与し、正規 ID で識別される特定のユーザーに完全なコントロールを付与する --grants オプションの使用方法を示しています。

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 コマンドは、キー (mykey) のアクセスポイント (myaccesspoint) に単一のファイル (mydoc.txt) をアップロードします。

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 コマンドは、アクセスポイント (myaccesspoint) からローカルファイル (mydoc.txt) に単一のオブジェクト (mykey) をダウンロードします。

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 の例は、S3 オブジェクトの所有権のバケット所有者の強制設定を使用して、my-bucket という名前のバケットを作成します。

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

出力:

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

詳細については、Amazon S3 ユーザーガイドオブジェクトの所有権のコントロールと ACL の無効化を参照してください。

例 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 の詳細については、「AWS CLI コマンドリファレンス」の「CreateBucket」を参照してください。

次のコード例は、create-multipart-upload を使用する方法を示しています。

AWS CLI

次のコマンドは、キー multipart/01 を使用して、バケット my-bucket にマルチパートアップロードを作成します。

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

出力:

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

完成したファイルは、my-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 \ --bucket my-bucket \ --id 1

このコマンドでは何も出力されません。

次のコード例は、delete-bucket-cors を使用する方法を示しています。

AWS CLI

次のコマンドは、my-bucket という名前のバケットから Cross-Origin Resource Sharing 設定を削除します。

aws s3api delete-bucket-cors --bucket my-bucket
  • API の詳細については、AWS CLI コマンドリファレンスの「DeleteBucketCors」を参照してください。

次のコード例は、delete-bucket-encryption を使用する方法を示しています。

AWS CLI

バケットのサーバー側の暗号化設定を削除するには

次の delete-bucket-encryption の例では、指定したバケットのサーバー側の暗号化設定を削除します。

aws s3api delete-bucket-encryption \ --bucket my-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 \ --bucket DOC-EXAMPLE-BUCKET \ --id ExampleConfig

このコマンドでは何も出力されません。

詳細については、「Amazon S3 ユーザーガイド」の「S3 Intelligent-Tiering の使用」を参照してください。

次のコード例は、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
  • API の詳細については、AWS CLI コマンドリファレンスの「DeleteBucketLifecycle」を参照してください。

次のコード例は、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 ユーザーガイド」の「既存のバケットでのオブジェクトの所有権の設定」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「DeleteBucketOwnershipControls」を参照してください。

次のコード例は、delete-bucket-policy を使用する方法を示しています。

AWS CLI

次のコマンドは、my-bucket という名前のバケットからバケットポリシーを削除します。

aws s3api delete-bucket-policy --bucket my-bucket
  • API の詳細については、AWS CLI コマンドリファレンスの「DeleteBucketPolicy」を参照してください。

次のコード例は、delete-bucket-replication を使用する方法を示しています。

AWS CLI

次のコマンドは、my-bucket という名前のバケットからレプリケーションの設定を削除します。

aws s3api delete-bucket-replication --bucket my-bucket
  • API の詳細については、「AWS CLI コマンドリファレンス」の「DeleteBucketReplication」を参照してください。

次のコード例は、delete-bucket-tagging を使用する方法を示しています。

AWS CLI

次のコマンドは、my-bucket という名前のバケットからタグの設定を削除します。

aws s3api delete-bucket-tagging --bucket my-bucket
  • API の詳細については、「AWS CLI コマンドリファレンス」の「DeleteBucketTagging」を参照してください。

次のコード例は、delete-bucket-website を使用する方法を示しています。

AWS CLI

次のコマンドは、my-bucket という名前のバケットからウェブサイト設定を削除します。

aws s3api delete-bucket-website --bucket my-bucket
  • API の詳細については、AWS CLI コマンドリファレンスの「DeleteBucketWebsite」を参照してください。

次のコード例は、delete-bucket を使用する方法を示しています。

AWS CLI

次のコマンドは、my-bucket という名前のバケットを削除します。

aws s3api delete-bucket --bucket my-bucket --region us-east-1
  • API の詳細については、「AWS CLI コマンドリファレンス」の「DeleteBucket」を参照してください。

次のコード例は、delete-object-tagging を使用する方法を示しています。

AWS CLI

オブジェクトのタグセットを削除するには

次の delete-object-tagging の例では、指定したキーを持つタグをオブジェクト doc1.rtf から削除します。

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

このコマンドでは何も出力されません。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「DeleteObjectTagging」を参照してください。

次のコード例は、delete-object を使用する方法を示しています。

AWS CLI

次のコマンドは、my-bucket という名前のバケットから test.txt という名前のオブジェクトを削除します。

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

バケットバージョニングが有効になっている場合、出力には削除マーカーのバージョン ID が含まれます。

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

オブジェクトの削除の詳細については、「Amazon S3 ユーザーガイド」の「オブジェクトの削除」を参照してください。

  • API の詳細については、「AWS CLI Command Reference」の「DeleteObject」を参照してください。

次のコード例は、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 の詳細については、「AWS CLI コマンドリファレンス」の「DeleteObjects」を参照してください。

次のコード例は、delete-public-access-block を使用する方法を示しています。

AWS CLI

バケットのブロックパブリックアクセス設定を削除するには

次の delete-public-access-block の例では、指定したバケットのブロックパブリックアクセス設定を削除します。

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

このコマンドでは何も出力されません。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「DeletePublicAccessBlock」を参照してください。

次のコード例は、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 の詳細については、AWS CLI コマンドリファレンスの「GetBucketAcl」を参照してください。

次のコード例は、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 という名前のバケットの Cross-Origin Resource Sharing 設定を取得します。

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 の詳細については、AWS CLI コマンドリファレンスの「GetBucketCors」を参照してください。

次のコード例は、get-bucket-encryption を使用する方法を示しています。

AWS CLI

バケットのサーバー側の暗号化設定を取得するには

次の get-bucket-encryption の例では、バケット my-bucket のサーバー側の暗号化設定を取得します。

aws s3api get-bucket-encryption \ --bucket my-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 \ --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-Tiering の使用」を参照してください。

次のコード例は、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" } ] }
  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetBucketLifecycle」を参照してください。

次のコード例は、get-bucket-location を使用する方法を示しています。

AWS CLI

次のコマンドは、my-bucket という名前のバケットの場所の制約を取得します (制約が存在する場合)。

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

出力:

{ "LocationConstraint": "us-west-2" }
  • API の詳細については、AWS CLI コマンドリファレンスの「GetBucketLocation」を参照してください。

次のコード例は、get-bucket-logging を使用する方法を示しています。

AWS CLI

バケットのログ記録ステータスを取得するには

次の get-bucket-logging の例では、指定したバケットのログ記録ステータスを取得します。

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

出力:

{ "LoggingEnabled": { "TargetPrefix": "", "TargetBucket": "my-bucket-logs" } }
  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetBucketLogging」を参照してください。

次のコード例は、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" } }
  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetBucketMetricsConfiguration」を参照してください。

次のコード例は、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:*" ] } }
  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetBucketNotification」を参照してください。

次のコード例は、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 バケットのオブジェクト所有権設定の表示」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetBucketOwnershipControls」を参照してください。

次のコード例は、get-bucket-policy-status を使用する方法を示しています。

AWS CLI

バケットがパブリックかどうかを示すバケットのポリシーステータスを取得するには

次の get-bucket-policy-status の例では、バケット my-bucket のポリシーステータスを取得します。

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

出力:

{ "PolicyStatus": { "IsPublic": false } }
  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetBucketPolicyStatus」を参照してください。

次のコード例は、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/*\"}]}" }

次の例は、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 の詳細については、AWS CLI コマンドリファレンスの「GetBucketPolicy」を参照してください。

次のコード例は、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" } }
  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetBucketReplication」を参照してください。

次のコード例は、get-bucket-request-payment を使用する方法を示しています。

AWS CLI

バケットのリクエストの支払い設定を取得するには

次の get-bucket-request-payment の例では、指定したバケットのリクエスタ支払いの設定を取得します。

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

出力:

{ "Payer": "BucketOwner" }
  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetBucketRequestPayment」を参照してください。

次のコード例は、get-bucket-tagging を使用する方法を示しています。

AWS CLI

次のコマンドは、my-bucket という名前のバケットのタグ付け設定を取得します。

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

出力:

{ "TagSet": [ { "Value": "marketing", "Key": "organization" } ] }
  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetBucketTagging」を参照してください。

次のコード例は、get-bucket-versioning を使用する方法を示しています。

AWS CLI

次のコマンドは、my-bucket という名前のバケットのバージョニング設定を取得します。

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

出力:

{ "Status": "Enabled" }
  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetBucketVersioning」を参照してください。

次のコード例は、get-bucket-website を使用する方法を示しています。

AWS CLI

次のコマンドは、my-bucket という名前のバケットの静的ウェブサイト設定を取得します。

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

出力:

{ "IndexDocument": { "Suffix": "index.html" }, "ErrorDocument": { "Key": "error.html" } }
  • API の詳細については、AWS CLI コマンドリファレンスの「GetBucketWebsite」を参照してください。

次のコード例は、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 の詳細については、AWS CLI コマンドリファレンスの「GetObjectAcl」を参照してください。

次のコード例は、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 を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「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" } }
  • API の詳細については、AWS CLI コマンドリファレンスの「GetObjectLegalHold」を参照してください。

次のコード例は、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 } } } }
  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetObjectLockConfiguration」を参照してください。

次のコード例は、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" } }
  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetObjectRetention」を参照してください。

次のコード例は、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 の詳細については、「AWS CLI コマンドリファレンス」の「GetObjectTagging」を参照してください。

次のコード例は、get-object-torrent を使用する方法を示しています。

AWS CLI

次のコマンドは、my-bucket という名前のバケット内のオブジェクトのトレントを作成します。

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

トレントファイルは、現在のフォルダにローカルに保存されます。出力ファイル名 (large-video-file.torrent) はオプション名なしで指定され、コマンドの最後の引数である必要があります。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetObjectTorrent」を参照してください。

次のコード例は、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 の詳細については、「AWS CLI コマンドリファレンス」の「GetObject」を参照してください。

次のコード例は、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 } }
  • API の詳細については、「AWS CLI コマンドリファレンス」の「GetPublicAccessBlock」を参照してください。

次のコード例は、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 の詳細については、「AWS CLI コマンドリファレンス」の「HeadBucket」を参照してください。

次のコード例は、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 の詳細については、AWS CLI コマンドリファレンスの「HeadObject」を参照してください。

次のコード例は、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-Tiering の使用」を参照してください。

次のコード例は、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 ユーザーガイド」の「バケットの使用」を参照してください。

  • API の詳細については、AWS CLI コマンドリファレンスの「ListBuckets」を参照してください。

次のコード例は、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 のストレージコストが発生します。アクティブなマルチパートアップロードを完了または中止して、その一部をアカウントから削除します。

  • API の詳細については、AWS CLI コマンドリファレンスの「ListMultipartUploads」を参照してください。

次のコード例は、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 } ] }
  • API の詳細については、AWS CLI コマンドリファレンスの「ListObjectVersions」を参照してください。

次のコード例は、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 API リファレンス」の「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 デベロッパーガイド」の「Working with Amazon S3 Objects」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「ListObjects」を参照してください。

次のコード例は、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 の詳細については、「AWS CLI コマンドリファレンス」の「ListParts」を参照してください。

次のコード例は、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 コマンドは、指定されたバケットとプレフィックスの下にあるオブジェクトと共通のプレフィックスを一覧表示します。この例では、ユーザーはオブジェクト test.txtmybucket を使用してバケット somePrefix/test.txt を所有します。LastWriteTimeLength は任意です。ls コマンドはローカルファイルシステムとやり取りしないため、あいまいさを解決するために URI s3:// スキームを必要とせず、省略される場合があることに注意してください。

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 パラメータで指定されたリージョンにバケットを作成します。この例では、ユーザーは リージョン us-west-1 にバケット mybucket を作成します。

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

出力:

make_bucket: s3://mybucket
  • API の詳細については、「AWS CLI コマンドリファレンス」の「Mb」を参照してください。

次のコード例は、mv を使用する方法を示しています。

AWS CLI

例 1: 指定されたバケットにローカルファイルを移動する

次の mv コマンドは、1 つのファイルを指定されたバケットとキーに移動します。

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

出力:

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

例 2: オブジェクトを指定されたバケットとキーに移動する

次の mv コマンドは、1 つの 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 コマンドは、1 つのオブジェクトを指定されたファイルにローカルに移動します。

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

出力:

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

例 4: 元の名前のオブジェクトを指定されたバケットに移動する

次の mv コマンドは、元の名前を保持しながら、1 つのオブジェクトを指定されたバケットに移動します。

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 コマンドは、ACL を public-read-write に設定しながら、1 つのオブジェクトを指定されたバケットとキーに移動します。

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 コマンドは、すべてのユーザーに読み取りアクセスを付与し、E メールアドレスで識別される特定のユーザーに完全なコントロールを付与する --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 コマンドは、mykey という名前のキーで myaccesspoint という名前のアクセスポイントに mydoc.txt という名前の 1 つのファイルを移動します。

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: S3 バケット内のオブジェクトにリンクするデフォルトの 1 時間の有効期間を持つ署名付き URL を作成するには

次の presign コマンドは、指定されたバケットと 1 時間有効なキーの署名付き 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: S3 バケット内のオブジェクトにリンクするカスタムの有効期間を持つ署名付き URL を作成するには

次の presign コマンドは、指定されたバケットと 1 週間有効なキーの署名付き 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 デベロッパーガイド」の「署名付き URL を使用したオブジェクトの共有」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「Presign」を参照してください。

次のコード例は、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 権限を 2 人の AWS ユーザー (user1@example.com と user2@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

カスタム ACL の詳細については、http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html を参照してください (put-bucket-acl などの s3api ACL コマンドは、同じ略記法を使用します)。

  • API の詳細については、AWS CLI コマンドリファレンスの「PutBucketAcl」を参照してください。

次のコード例は、put-bucket-analytics-configuration を使用する方法を示しています。

AWS CLI

バケットの分析設定をいていするには

次の put-bucket-analytics-configuration の例では、指定されたバケットと ID の分析を設定します。

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 の詳細については、AWS CLI コマンドリファレンスの「PutBucketCors」を参照してください。

次のコード例は、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"}}]}'

このコマンドでは何も出力されません。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「PutBucketEncryption」を参照してください。

次のコード例は、put-bucket-intelligent-tiering-configuration を使用する方法を示しています。

AWS CLI

バケットの S3 Intelligent-Tiering 設定を更新するには

次の put-bucket-intelligent-tiering-configuration の例では、バケットの ExampleConfig という名前の S3 Intelligent-Tiering 設定を更新します。この設定では、プレフィックスイメージでアクセスされていないオブジェクトは、90 日後にアーカイブアクセス、180 日後にディープアーカイブアクセスに移行されます。

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 の例では、バケット my-bucket の毎週の ORC 形式のインベントリレポートを設定します。

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 の例では、バケット my-bucket の日次 CSV 形式のインベントリレポートを設定します。

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 ドキュメントで、次の 2 つのルールを指定します。

{ "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" } ] }

1 つ目のルールは、指定した日付に、プレフィックス rotated の付いたファイルを Glacier に移動します。2 つ目のルールは、最新でない古いオブジェクトバージョンを Glacier に移動します。詳細については、「AWS CLI ユーザーガイド」の「Specifying Parameter Values」を参照してください。

次のコード例は、put-bucket-lifecycle を使用する方法を示しています。

AWS CLI

次のコマンドは、バケット my-bucket にライフサイクル設定を適用します。

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

lifecycle.json ファイルは、現在のフォルダ内の JSON ドキュメントで、次の 2 つのルールを指定します。

{ "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" } ] }

最初のルールは、60 日後にファイルを Amazon Glacier に移動します。2 番目のルールは、指定した日付に Amazon S3 からファイルを削除します。詳細については、「AWS CLI ユーザーガイド」の「Specifying Parameter Values」を参照してください。

上記の例の各ルールは、適用されるポリシー (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 の例では、MyBucket のログ記録ポリシーを設定します。まず、バケットポリシーを使用して、ログ記録サービスプリンシパルに許可を付与します。

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 サーバーアクセスのログ記録」を参照してください。

例 2: 1 人のユーザーのみにアクセスをログ記録するためのバケットポリシーを設定するには

次の put-bucket-logging の例では、MyBucket のログ記録ポリシーを設定します。AWS ユーザー bob@example.com はログファイルを完全に制御でき、他のユーザーはアクセスできません。まず、put-bucket-acl で S3 アクセス許可を付与します。

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 コマンドは、Amazon S3 のログ配信システムに必要なアクセス許可 (write および read-acp アクセス許可) を付与するために必要です。

詳細については、「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 \ --bucket my-bucket \ --id 123 \ --metrics-configuration '{"Id": "123", "Filter": {"Prefix": "logs"}}'

このコマンドでは何も出力されません。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「PutBucketMetricsConfiguration」を参照してください。

次のコード例は、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 トピックには、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::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" } } } ] }
  • API の詳細については、AWS CLI コマンドリファレンスの「PutBucketNotification」を参照してください。

次のコード例は、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 ユーザーガイド」の「既存のバケットでのオブジェクトの所有権の設定」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「PutBucketOwnershipControls」を参照してください。

次のコード例は、put-bucket-policy を使用する方法を示しています。

AWS CLI

この例では、MySecretFolder 内のものを除き、すべてのユーザーが MyBucket 内のすべてのオブジェクトを取得できるようにします。また、AWS アカウント 1234-5678-9012 のルートユーザーに、put および delete 権限を付与します。

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 の詳細については、AWS CLI コマンドリファレンスの「PutBucketPolicy」を参照してください。

次のコード例は、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 コンソールユーザーガイド」の「チュートリアル: レプリケーションの設定例」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「PutBucketReplication」を参照してください。

次のコード例は、put-bucket-request-payment を使用する方法を示しています。

AWS CLI

例 1: バケットの「リクエスタ支払い」設定を有効にするには

次の put-bucket-request-payment の例では、指定したバケットの requester pays を有効にします。

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

このコマンドでは何も出力されません。

例 2: バケットの「リクエスタ支払い」設定を無効にするには

次の put-bucket-request-payment の例では、指定したバケットの requester pays を無効にします。

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

このコマンドでは何も出力されません。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「PutBucketRequestPayment」を参照してください。

次のコード例は、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 の詳細については、「AWS CLI コマンドリファレンス」の「PutBucketTagging」を参照してください。

次のコード例は、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"
  • API の詳細については、「AWS CLI コマンドリファレンス」の「PutBucketVersioning」を参照してください。

次のコード例は、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 の詳細については、AWS CLI コマンドリファレンスの「PutBucketWebsite」を参照してください。

次のコード例は、put-object-acl を使用する方法を示しています。

AWS CLI

次のコマンドは、2 人の AWS ユーザー (user1@example.com および user2@example.com) に full control 権限を付与し、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

カスタム ACL の詳細については、http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html を参照してください (put-object-acl などの s3api ACL コマンドは、同じ略記法を使用します)。

  • API の詳細については、AWS CLI コマンドリファレンスの「PutObjectAcl」を参照してください。

次のコード例は、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

このコマンドでは何も出力されません。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「PutObjectLegalHold」を参照してください。

次のコード例は、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 }}}'

このコマンドでは何も出力されません。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「PutObjectLockConfiguration」を参照してください。

次のコード例は、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" }'

このコマンドでは何も出力されません。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「PutObjectRetention」を参照してください。

次のコード例は、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 の詳細については、「AWS CLI コマンドリファレンス」の「PutObjectTagging」を参照してください。

次のコード例は、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 の詳細については、「AWS CLI Command Reference」の「PutObject」を参照してください。

次のコード例は、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"

このコマンドでは何も出力されません。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「PutPublicAccessBlock」を参照してください。

次のコード例は、rb を使用する方法を示しています。

AWS CLI

例 1: バケットを削除する

次の rb コマンドはバケットを削除します。この例では、ユーザーのバケットは mybucket です。削除するには、バケットが空である必要があります。

aws s3 rb s3://mybucket

出力:

remove_bucket: mybucket

例 2: バケットを強制的に削除する

次の rb コマンドは、--force パラメータを使用して、まずバケット内のすべてのオブジェクトを削除し、次にバケット自体を削除します。この例では、ユーザーのバケットは mybucket で、mybucket 内のオブジェクトは test1.txt および test2.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 の詳細については、AWS CLI コマンドリファレンスの「RestoreObject」を参照してください。

次のコード例は、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」ファイルを除くバケット内のすべてのコンテンツを削除する

次の rm コマンドは、パラメータ --recursive で渡されたときに、パラメータ --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 コマンドは、アクセスポイント (myaccesspoint) から単一のオブジェクト (mykey) を削除します。:: 次の rm コマンドは、アクセスポイント (myaccesspoint) から単一のオブジェクト (mykey) を削除します。

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"

このコマンドでは何も出力されません。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「SelectObjectContent」を参照してください。

次のコード例は、sync を使用する方法を示しています。

AWS CLI

例 1: すべてのローカルオブジェクトを指定されたバケットに同期する

次の sync コマンドは、ローカルファイルを S3 にアップロードすることで、ローカルディレクトリから指定されたプレフィックスとバケットにオブジェクトを同期します。ローカルファイルのサイズが S3 オブジェクトのサイズと異なる場合、ローカルファイルの最終変更時刻が S3 オブジェクトの最終変更時刻よりも新しい場合、またはローカルファイルが指定されたバケットとプレフィックスの下に存在しない場合、ローカルファイルのアップロードが必要になります。この例では、ユーザーはバケット mybucket をローカルの現在のディレクトリに同期します。ローカルの現在のディレクトリには、test.txt ファイルと test2.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 オブジェクトをコピーすることで、指定されたプレフィックスとバケットの下のオブジェクトを、別の指定されたプレフィックスとバケットの下のオブジェクトに同期します。2 つの S3 オブジェクトのサイズが異なる場合、ソースの最終変更時刻が送信先の最終変更時刻よりも新しい場合、または指定されたバケットとプレフィックスの送信先の下に 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 バケットからローカルディレクトリにファイルを同期します。S3 オブジェクトのサイズがローカルファイルのサイズと異なる場合、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.txt ファイルと test2.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.jpg ファイルと test2.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 パラメータフラグを使用して、指定されたディレクトリと S3 プレフィックスを sync コマンドから除外します。この例では、ユーザーはローカルの現在のディレクトリをバケット mybucket に同期します。ローカルの現在のディレクトリには、test.txt ファイルと another/test2.txt ファイルが含まれています。バケット mybucket には、オブジェクト another/test5.txttest1.txt が含まれます。

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

出力:

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

例 7: 異なるリージョンのバケット間ですべてのオブジェクトを同期する

次の sync コマンドは、異なるリージョンの 2 つのバケット間でファイルを同期します。

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 コマンドリファレンス」の「Sync」を参照してください。

次のコード例は、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 の詳細については、「AWS CLI コマンドリファレンス」の「UploadPartCopy」を参照してください。

次のコード例は、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 オプションは、アップロードするローカルファイルの名前またはパスを指定します (file://プレフィックスは使用しないでください)。各パートの最小サイズは 5 MB です。アップロード ID は create-multipart-upload によって返され、list-multipart-uploads を使用して取得することもできます。バケットとキーは、マルチパートアップロードの作成時に指定されます。

出力:

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

後で使用できるように、各パートの ETag 値を保存します。これらはマルチパートアップロードを完了するために必要です。

  • API の詳細については、AWS CLI コマンドリファレンスの「UploadPart」を参照してください。

次のコード例は、website を使用する方法を示しています。

AWS CLI

S3 バケットを静的ウェブサイトとして設定する

次のコマンドは、my-bucket という名前のバケットを静的ウェブサイトとして設定します。インデックスドキュメントオプションは、訪問者がウェブサイト URL に移動するときに誘導される my-bucket のファイルを指定します。この場合、バケットは 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 デベロッパーガイドガイド」の「Amazon S3 を使用して静的ウェブサイトをホスティングする」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「Website」を参照してください。