Pythonで
・S3上の指定したパス配下の
・ファイル一覧を取得
できます!
この記事では
・プロファイルを指定した方法
紹介します!
※ローカルから実行します。Lambda関数からではなく。
前提
①外部ライブラリ「boto3」がインストールされていること。
pipコマンドでインストールする場合、以下でインストールできます
pip install boto3
②AWS CLIのプロファイルが設定済みであること。
コード
ここでは例として
・バケット「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)
実行結果
S3上の指定したパス配下のファイル一覧を取得できました。
参考
上記のコードは以下の公式サイトを参考にして作成しました。