Я пишу скрипт для разбора файлов S3 buckets без необходимости их локальной загрузки.Кажется, код работает, поскольку он не находит файлы ледника.Я добавляю исключение (обработка обещаний выглядит лучше в реальном коде, обещаю), но в идеале я хотел бы посмотреть, можно ли отфильтровать файлы ледника.
Вот мой код:
import boto3
import gzip
import os
try:
s3_client = boto3.client('s3')
bucket = 'my_bucket'
prefix = 'path_to_file/file_name.csv.gz'
obj = s3_client.get_object(Bucket=bucket, Key=prefix)
body = obj['Body']
with gzip.open(body, 'rt') as gf:
for ln in gf:
print(ln)
except Exception as e:
print(e)
Я вижу, что используя AWS CLI, я могу, как минимум, сортировать файлы так, как файлы ледника находятся внизу, поэтому должен быть способВ любом случае сортируйте или фильтруйте их в boto3:
aws s3api list-objects --bucket my-bucket --query "reverse(sort_by(Contents,&LastModified))"