S3へファイルをアップロードするためのナニカ

なんか使いそうだったので、検証として

S3へアップロードする際にセットアップも含めなるべく工数を掛けないで作業できそうなものを作ってみた。

<準備>

何はなくともboto3は必要。

pip install boto3

<コード>

・credentialsを作らない動かす

import boto3

from boto3.session import Session

session = Session(aws_access_key_id='<ACCESS KEY>',
aws_secret_access_key='<SECRET KEY>')

s3 = session.resource('s3')
for bucket in s3.buckets.all():
print(bucket.name)

# バケット名
AWS_S3_BUCKET_NAME = '<BUCKET_NAME>'
bucket = s3.Bucket(AWS_S3_BUCKET_NAME)
print("bucket.name : {}".format(bucket.name))

PUT_OBJECT_KEY_NAME = '<OBJECT NAME>'
obj = bucket.Object(PUT_OBJECT_KEY_NAME)

upload_file_path = r"<UPLOAD FILE PATH>"

print("upload_file_path : {}".format(upload_file_path))
print("OBJECT_NAME : {}".format(PUT_OBJECT_KEY_NAME))
print("upload_file Start")
bucket.upload_file(upload_file_path, PUT_OBJECT_KEY_NAME)
print("upload_file Completed")

わりと簡単にアップロードできた。

本当はcredentialsのファイルなどを作ったほうが管理は楽なんだろうけども、

運用端末などでセッティングが運用者にわからない場合を考えると、見えるところにあるConfigファイルなどに記載させておく方が楽だったりするケースがあるという考慮。あと、「インストール」はしたくないというわけのわからないことを言い出す人もいるし。。


検証のみおわる

検証としてやってみたのはよかったが、

最終的には使わなかったのでここにメモとして残しておくことにした。

なので、これを実運用で使ったらどうなるかは未検証。