Поддерживает ли Amazon S3 многофайловую атомарную загрузку? - PullRequest
4 голосов
/ 04 мая 2011

Я разрабатываю систему против Amazon S3. Я делаю это в C #, используя S3 .NET SDK.

Я хочу загрузить несколько файлов на S3 одновременно, но если что-то не получится, я хочу, чтобы все они потерпели неудачу. Я могу это сделать? Как?

Выполняет ли SDK TransferUtility.UploadDirectory элементарную загрузку каталога, где, если какой-либо файл в каталоге не удается загрузить, все они терпят неудачу?

Если он не выполняет атомную загрузку, мне понадобится код, чтобы управлять им самостоятельно; как узнать, какие файлы были успешными, а какие - нет, используя TransferUtility.UploadDirectory?

Спасибо за любую помощь или указание направления.

Ответы [ 2 ]

0 голосов
/ 11 сентября 2011

Нет, вы не можете этого сделать. S3 не предлагает API для загрузки нескольких объектов. Лучшее, что вы можете сделать, это реализовать это в своем клиенте (если одна загрузка не удалась, удалите все объекты, которые уже были загружены), но, конечно, это не атомарно.

0 голосов
/ 05 мая 2011

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

Итак, некоторый тип возможных очередей согласованности необходим, чтобы гарантировать, что все будет сделано вместо этого.Многофайловый механизм загрузки для S3 для атомарной обработки был бы очень удобен, и, возможно, они работают над этим, но у них, похоже, нет этой функции в настоящее время.

...