Amazon S3: как безопасно загрузить несколько файлов? - PullRequest
0 голосов
/ 15 мая 2018

У меня есть две клиентские программы, которые используют S3 для передачи некоторой информации. Эта информация представляет собой список файлов.

Давайте назовем клиентов «загрузчиком» и «загрузчиком»:

Загрузчик делает что-то вроде этого:

  • загрузить файл A
  • загрузить файл B
  • загрузить файл C
  • загрузить файл маркера УСПЕХА

Загрузчик делает что-то такое:

  • проверка на УСПЕХ
    • если найдено, скачайте A, B, C.
    • еще, получить данные откуда-то еще

и обе эти программы запускаются периодически. После загрузки загрузчик заполнит новый каталог, а загрузчик попытается получить последние версии A, B, C.

Надеюсь, цель ясна - я не хочу, чтобы загрузчик видел частичное представление, а скорее получил все A, B, C или пропустил этот каталог.

Однако , я не думаю, что это работает, как написано. Благодаря возможной последовательности, PUT загрузчика могут быть переупорядочены в:

  • загрузить файл B
  • загрузить файл маркера УСПЕХА
  • загрузить файл A
  • ...

И в этот момент загрузчик может запуститься, увидеть маркер SUCCESS и предположить, что каталог заполнен (а это не так).

Так какой здесь правильный подход?

Одна идея состоит в том, чтобы загрузчик сначала загрузил A, B, C, затем повторно проверял, что файлы сохранены, и только после того, как он видит их все, а затем, наконец, пишет маркер УСПЕХА.

Будет ли это работать?

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