牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Python と boto で S3 の情報を取得してみるメモ

# coding=utf-8
import json
import re

from boto3.session import Session

AWS_ACCESS_KEY_ID = 'AWS_ACCESS_KEY_ID...'
AWS_SECRET_ACCESS_KEY = 'AWS_SECRET_ACCESS_KEY...'
BUCKET_NAME = 'hoge'

session = Session(
    aws_access_key_id=AWS_ACCESS_KEY_ID,
    aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
    region_name='ap-northeast-1',
)


# バケット名を表示してみる
s3 = session.resource('s3')
for bucket in s3.buckets.all():
    print(bucket.name)


s3client = session.client('s3')

response = s3client.list_objects(
    Bucket=BUCKET_NAME,
    Prefix='fuga_prefix'
)

keys = []
if 'Contents' in response:
    keys = [content['Key'] for content in response['Contents']]


# 特定の場所にあるjpeg画像を取得してJSONで書き出してみる
image_keys = []
for key in keys:
    if re.findall(r'^images/.*?\.jp[e]?g$', key, flags=re.I):
        image_keys.append(key)

records = {
    "Records": [{
        "bucket": BUCKET_NAME,
        "keys": image_keys
    }]
}

print(json.dumps(records, indent=2))

参考