【Python】S3上の指定したバケット配下に、ファイルをアップロードする【AWS】

Pythonで
 ・S3上の指定したバケット配下に
 ・ファイルをアップロード
できます!

この記事では
 ・プロファイルを指定した方法
紹介します!
※ローカルから実行します。Lambda関数からではなく。

前提

①外部ライブラリ「boto3」がインストールされていること。
pipコマンドでインストールする場合、以下でインストールできます

pip install boto3


②AWS CLIのプロファイルが設定済みであること。

コード

ここでは例として
 ・デスクトップ配下にあるファイル「file_001.txt」を
 ・バケット「tmp12345」配下のフォルダ「sub1/sample」配下にアップロード
します。

from boto3.session import Session
from botocore.exceptions import ClientError

# プロファイル名
profile = "develop"
# アップロードするファイル
upload_file = r"C:\Users\lunch\Desktop\file_001.txt"
# バケット名
bucket = "tmp12345"
# キー名(アップロード先のS3のファイルパス)
key = "sub1/sample/file_001.txt"

try:
    session = Session(profile_name=profile)
    s3_client = session.client(service_name="s3")
    # S3上にファイルをアップロード
    s3_client.upload_file(upload_file, bucket, key)
    print("S3上にファイルをアップロードしました。")
except ClientError as e:
    print("エラーが発生しました。")
    print("エラーコード:" + e.response["Error"]["Code"])
    print("エラーメッセージ:" + e.response["Error"]["Message"])
except Exception as e:
    print("エラーが発生しました。")
    print(e)

以下を指定します(5~11行目)。
※状況に応じて任意の値を指定してください。

・プロファイル名
・アップロードするファイル
・バケット名
・キー名(アップロード先のS3のファイルパス)

S3上のフォルダ(上記の場合はsub1やsample)が存在しない場合、フォルダも一緒に作成されます。
※エラーにはなりません。

S3上にファイル(上記の場合はfile_001.txt)が存在する場合、上書きされます。
※エラーにはなりません。

実行結果

S3上の指定したバケット配下に、ファイルをアップロードできました。

実行結果①
実行結果①
実行結果②
実行結果②

参考

上記のコードは以下の公式サイトを参考にして作成しました。

タイトルとURLをコピーしました