Я пытаюсь перебрать файлы в моем хранилище s3 и отправить все файлы (или ключи), которые были запущены в 2019, 2018 или 2017 году, в файл csv.
Структура моего Путь s3 выглядит следующим образом:
file/archive/run=2017-10-07-06-13-21/folder_paths/version=1-0-0/part-00000-b.txt
Внутри архивной папки есть подпапка с многочисленными папками. Например:
run=2017-10-06-06-13-21
run=2018-10-07-09-13-21
run=2019-10-07-07-13-23
run=2019-10-05-06-13-21
и т. Д. ......
Таким образом, если папка run = находится в 2019 году, отправьте все ключи 2019 на адрес CSV-файл и все ключи, которые находятся в 2017 году в другом CSV-файле, а затем все файлы в 2018 году в другом CSV-файле.
Я запустил код следующим образом:
#Import boto3 module
import boto3
import logging
from botocore.exceptions import ClientError
#This is to List existing Buckets for the AWS account
#Set key variables
PREFIX = 'shredded/'
s3 = boto3.resource('s3',
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY
)
for bucket in s3.buckets.all():
for obj in bucket.objects.filter(Bucket='my_bucket',Prefix=PREFIX):
if 'run=2019' in obj.key:
print('{0}:{1}'.format(bucket.name, obj.key))
В результате все пути к файлам, как обычно. Я хочу выводить только те файлы, которые запускаются = время в 2019, 2018, 2017 годах.
Любые предложения помогут. Спасибо