#java #amazon-web-services #amazon-s3
#java #amazon-web-services #amazon-s3
Вопрос:
Я настроил корзину S3 с включенным управлением версиями.
Один внешний процесс записывает файлы json (каждый файл json соответствует одному объекту Student) в корзину S3.
Я определил структуру папок корзины S3 следующим образом:
s3://student-data/new/ <-- THIS WILL CONTAIN ALL THE UNPROCESSED JSON FILES
s3://student-data/processed/ <-- THIS WILL CONTAIN ALL THE PROCESSED JSON FILES.
Теперь у меня есть Cron, который запускается периодически, один раз в каждые 6 часов.
Новые файлы JSON записываются в new
папку внешним процессом.
Я бы хотел, чтобы Cron обрабатывал все файлы JSON с соответствующими версиями в new
папке, а после завершения обработки переместил все файлы со всеми существующими версиями из new
папки в processed
папку.
Здесь я могу получить текущую версию для файла json, записанного в new
папку, и переместить его в processed
постобработку папки.
Но я не понимаю, как я могу переместить файл со всеми его версиями из new
в processed
, чтобы в будущем мне не приходилось обрабатывать одну и ту же версию файла дважды.
Ответ №1:
Объекты в Amazon S3 не могут быть «перемещены». Скорее всего, их нужно скопировать в новый ключ, а затем исходный объект следует удалить.
Этот процесс будет сложнее с несколькими версиями объекта. Вам нужно будет скопировать и удалить каждую версию по отдельности, от самой старой до самой новой, чтобы создать новые версии в целевом пути. Невозможно обработать все версии объекта одновременно.
Управление версиями обычно используется для сохранения перезаписанных данных. Возможно, вы захотите рассмотреть, требуется ли управление версиями в вашей ситуации, поскольку это значительно усложняет процесс.