前提
フォルダをS3バケットへアップロードし、そこから特定階層のテキストファイルを読み込むコードを作成しています。
現在作成中のコードは以下通りです。(S3へのアクセス権限関連はすべて許可済みです。)
import boto3 def lambda_handler(event, context): s3 = boto3.client('s3') bucket_name = 'bucket' file_name = 'open.txt' S3KeyPrefix = 'sample/' response = s3.get_object(Bucket=bucket_name, Key=S3KeyPrefix + file_name) body = response['Body'].read() bodystr = body.decode('utf-8') data = bodystr.split('\n')[10] print(data)
上記ですとsampleフォルダをアップロードした際、フォルダ中に含まれている「open.txt」の10行目を読み込んで出力するコードとなります。
実現したいこと
S3KeyPrefixにフォルダを指定していますが、フォルダの名称は固定ではありません。
ただし、1階層下に必ずopen.txtがフォルダに含まれています。
なのでフォルダの名称に関係なくtxtファイルの読み込みをしたいと思います。
試したこと
https://hacknote.jp/archives/20100/
ここに記載されている通り、特定フォルダを指定する方法をPrefixで指定すればいいのかとは思いますが、
何をどうやって指定するのかが分からない段階です。
実現させるためにどのようにすればいいのかご教授いただければ幸いです。
(その他に有効な手段があれば教えていただければと思います。)
補足情報(FW/ツールのバージョンなど)
Python 3.9 , AWS lambda

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2022/11/04 09:57