Python - извлечение только добавочных файлов из AWS S3 - PullRequest
0 голосов
/ 03 мая 2018

В настоящее время я пытаюсь извлечь данные из AWS S3, используя приведенный ниже код. Код работает просто отлично. Однако проблема, с которой я столкнулся, заключается в том, что я пытаюсь запускать приведенный ниже скрипт каждый час и извлекать только добавочные файлы, которые были добавлены в течение последнего часа. Однако приведенный ниже код извлекает все файлы из папки каждый раз. Как я могу изменить ниже, чтобы извлечь только файлы, которые не находятся в папке LOCAL_PATH.

import boto, os
import datetime
from os import path

current_time = datetime.datetime.now().strftime("%Y-%m-%d")


LOCAL_PATH = '/Users/user/Desktop/rep'

AWS_ACCESS_KEY_ID = 'ACCESS'
AWS_SECRET_ACCESS_KEY = 'SECRET'
bucket_name = 'bucket'

# connect to the bucket
conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
bucket = conn.get_bucket(bucket_name)


# go through the list of files
bucket_list = bucket.list(prefix='FolderName/{}'.format(current_time))

#bucket_list = bucket.list()
for l in bucket_list:
  keyString = str(l.key)
  d = LOCAL_PATH + keyString
  try:
    l.get_contents_to_filename(d)
  except OSError:
    # check if dir exists
    if not os.path.exists(d):
      os.makedirs(d)

Может ли кто-нибудь помочь. Спасибо ..

1 Ответ

0 голосов
/ 03 мая 2018

Если вам требуется загрузить любые недавно добавленные файлы, которые необходимо загрузить в локальную файловую систему, то запуск задания cron каждый час - это решение старой школы.

Вы должны попробовать AWS S3 Lambda вместо того, чтобы запускать задание cron каждый час. Сделайте домашнее задание, как настроить Lambda и использовать его. Я думаю, что это лучшее решение по дизайну.

...