pythonでS3にgzip形式でPUTする
PythonでS3にgzip形式でPUTする際は以下のようにすればいける。
Python 2.7.5
import boto3
from boto3.session import Session
buff = '111,222,333'
# output csv
session = Session(aws_access_key_id=your_access_key_id,
aws_secret_access_key=your_secret_access_key',
)
bucket = "your-bucket"
key = "{}.csv.gz".format("yyyy-mm-dd")
io = StringIO()
with GzipFile(fileobj=io, mode='wb') as f:
f.write(buff)
body = io.getvalue()
s3 = session.resource('s3')
s3.Bucket(bucket).put_object(Key=key, Body=body, ACL='public-read', ContentEncoding='gzip')