1. ホーム
  2. python

boto3を使ってS3にファイルをアップロードし、公開する方法とは?

2023-11-06 14:15:39

質問

を使って画像ファイルをアップロードすることができます。

s3 = session.resource('s3')
bucket = s3.Bucket(S3_BUCKET)
bucket.upload_file(file, key)

しかし、このファイルも公開したいのです。ファイルのACLを設定するための関数を探してみましたが、boto3がAPIを変更し、いくつかの関数を削除してしまったようです。boto3の最新リリースでそれを行う方法はありますか?

どのように解決するのですか?

objectAcl APIを使用することでできました。

s3 = boto3.resource('s3')
object_acl = s3.ObjectAcl('bucket_name','object_key')
response = object_acl.put(ACL='public-read')

詳しくは http://boto3.readthedocs.io/en/latest/reference/services/s3.html#objectacl