Требование заключается в том, что в исходной корзине мы получаем исторические ежедневные файлы.Файлы имеют формат -
Исходная корзина -
s3://sourcebucket/abc/111111_abc_1180301000014_1-3_1180301042833.txt
s3://sourcebucket/abc/111111_cde_1180302000042_2-3_1180302042723.txt
Это примеры значений, поскольку я не могу опубликовать точное имя файла -
111111_abc_1180301000014_1-3_1180301042833.txt
, где 1180301000014 - это дата и время 180301 - дата 1 марта 2018 года, а 000014 - часы, минуты и секунды - ччммсс
Как только мы получим все почасовые файлы для1 марта нам нужно скопировать эти файлы в другое ведро, а затем выполнить дальнейшую обработку.В настоящее время копия работает нормально.Он копирует все файлы, присутствующие в исходной корзине, в место назначения.Но я не уверен, как применить фильтр таким образом, чтобы он сначала выбирал файл только 1 марта и копировал его в другое ведро.Затем он должен выбрать остальные файлы в последовательном порядке.
Скрипт Python -
import boto3
import json
s3 = boto3.resource('s3')
def lambda_handler(event, context):
bucket = s3.Bucket('<source-bucket>')
dest_bucket = s3.Bucket('<destination-bucket>')
for obj in bucket.objects.filter(Prefix='abc/',Delimiter='/'):
dest_key = obj.key
print(dest_key)
s3.Object(dest_bucket.name, dest_key).copy_from(CopySource = {'Bucket': obj.bucket_name, 'Key': obj.key})
Я не так хорошо разбираюсь в Python.На самом деле это мой первый скрипт на python.Любое руководство приветствуется.