権限の問題。 以下のようにアクセスキーとシークレットアクセスキーを引数に含めればよい。 アクセスキーなど人ごとに異なるものは環境変数から持ってくるようにする。
# 各自のアクセスキー、シークレットアクセスキーを環境変数より取得 ACCESS_KEY = os.environ["ACCESS_KEY"] SECRET_ACCESS_KEY = os.environ["SECRET_ACCESS_KEY"] BUCKET = "バケット名" def upload_to_s3(remote_path: str, content: Union[bytes, IO, None]): """ファイル・オブジェクトをS3にアップロードする Args: remote_path (str): アップロード先のS3のパス content (Union[bytes, IO, None]): アップロードするファイルまたはオブジェクト """ s3: ServiceResource = boto3.resource('s3', aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_ACCESS_KEY) s3.Bucket(BUCKET).put_object(Key=remote_path, Body=content)
IAMロールを使った方がいいんだろうけど。。
参考: