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