S3 へのアクセスは boto3 というライブラリを使う。
ファイルの種類は libmagic を使って mime-type 形式で取得する。
まずは、ライブラリ群のインストール:
$ brew install libmagic
$ pip install python-magic
$ pip install boto3
次にスクリプト:
# 対象ファイルのパスのプレフィックス
key_prefix = 'uploads/'
# 対象ファイル名のパターン
key_pattern = 'uploads/\d+/images/.*'
# ダウンロード用の一時ファイル名
temporary_filename = '/tmp/downloaded_file'
for s3_object in bucket.objects.filter(Prefix=key_prefix):
if not re.match(key_pattern, s3_object.key):
continue
s3_object.Object().download_file(temporary_filename)
mime_type = magic.from_file(temporary_filename, mime=True)
print("{}: {}".format(s3_object.key, mime_type)