Как перебрать корзину s3, чтобы собрать все ключи от заданной даты подпапки-boto3 - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь перебрать файлы в моем хранилище 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 годах.

Любые предложения помогут. Спасибо

...