【Python】S3上の指定したパス配下のファイル一覧を取得する【AWS】

Pythonで
 ・S3上の指定したパス配下の
 ・ファイル一覧を取得
できます!

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

前提

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

pip install boto3


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

コード

ここでは例として
 ・バケット「tmp12345/sub1」配下の
 ・ファイルの一覧を取得
します。
※バケット「tmp12345/sub1」配下には「テキストファイル」と「エクセルファイル」と「フォルダ」もあることとします。
※「フォルダ」は取得されません。

バケット「tmp12345/sub1」配下
バケット「tmp12345/sub1」配下
from boto3.session import Session
from botocore.exceptions import ClientError

# プロファイル名
profile = "develop"
# バケット名
bucket = "tmp12345"
# フォルダ名
prefix = "sub1/"

try:
    session = Session(profile_name=profile)
    s3_client = session.client(service_name="s3")
    # S3上の指定したパス配下のファイル一覧を取得
    response = s3_client.list_objects_v2(Bucket=bucket, Prefix=prefix, Delimiter="/")
    for object in response["Contents"]:
        if object["Key"] != prefix:
            print(object["Key"])
except ClientError as e:
    print("エラーが発生しました。")
    print("エラーコード:" + e.response["Error"]["Code"])
    print("エラーメッセージ:" + e.response["Error"]["Message"])
except Exception as e:
    print("エラーが発生しました。")
    print(e)

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

・プロファイル名
・バケット名
・フォルダ名

実行結果

S3上の指定したパス配下のファイル一覧を取得できました。

実行結果

参考

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

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