как установить водяной знак при загрузке из ведра s3 - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть одна корзина s3, которая содержит zip-файлы.У меня есть скрипт, который загружает zip-файлы на мой локальный сервер, распаковывает их и загружает в другое хранилище s3.Как установить водяной знак, чтобы я знал, какой файл был загружен последним, чтобы мне не нужно было сохранять все файлы локально или загружать все файлы при каждом запуске сценария?Я использую команду синхронизации aws, которая, насколько я понимаю, должна копировать только новые файлы, я прав?

aws s3 sync $gcs3$gcRegion/$gcTech/$gcPrinterFamily/$gcPrinterType/$gcPrinterName/  $dir

1 Ответ

0 голосов
/ 11 апреля 2019

Команда Интерфейс командной строки AWS (CLI) aws s3 sync скопирует все файлы, которые отсутствуют в месте назначения (своего рода).

Итак, вам нужно сохранить все ранее загруженные файлы или другой способ отслеживать загруженные файлы.

Вместо этого я бы порекомендовал написать собственную программу, которая:

  • Загружает все файлы из корзины S3 с отметкой времени LastModified после сохраненной отметки времени
  • Сохраняет текущее время
  • Распаковывает файлы и копирует их в другую корзину S3
  • Удаляет zip-файлы и разархивированные файлы

Итак, программе нужно будет помнить последний раз, когда она загружала файлы, но ей не нужно будет помнить, какие файлы она скачала. Будьте осторожны - S3 хранит время в UTC, поэтому вам нужно будет конвертировать ваши часовые пояса. Или просто запомните самое высокое значение LastModified загруженных вами файлов.

Чтобы получить список файлов с определенной даты LastModified, вы можете использовать интерфейс командной строки AWS:

aws s3api list-objects --bucket jstack-a --query "Contents[?LastModified>='2019-04-11'].[Key]" --output text

Однако я бы порекомендовал написать программу на Python для перечисленных выше действий, поскольку было бы проще писать сценарии командной строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...