S3にオブジェクトとメタデータをPythonで保存
Pythonのboto3を使って、S3にオブジェクトとユーザ定義のメタデータを保存するサンプルコードです。
import boto3 # default以外のprofileを使う場合はここで指定 profile = "default" session = boto3.session.Session(profile_name = profile) client = session.client("s3") s3_bucket = "example" s3_key = "sample.txt" meta_aaa = "AAA" meta_bbb = "BBB" client.put_object( Bucket = s3_bucket, Key = s3_key, Body = "Hello", Metadata = { "aaa": meta_aaa, "bbb": meta_bbb, }, )
このPythonスクリプトを実行するとS3に1つオブジェクトが保存されて、それにメタデータが付与されます。
$ python store_to_s3.py
awscliを使って付与されたメタデータを確認できます。
$ aws s3api head-object --bucket example --key sample.txt { "AcceptRanges": "bytes", "Expiration": "expiry-date=\"Sun, 13 Dec 2020 00:00:00 GMT\", rule-id=\"trash old files\"", "LastModified": "Sat, 07 Nov 2020 12:48:18 GMT", "ContentLength": 5, "ETag": "\"8b1a9953c4611296a827abf8c47804d7\"", "ContentType": "binary/octet-stream", "Metadata": { "bbb": "BBB", "aaa": "AAA" } }
バージョン情報
$ pip list | grep boto boto3 1.14.63 botocore 1.17.63