Amazon S3 обеспечивает "возможную непротиворечивость" модель, где данные, которые Вы храните, в конечном счете видимы всем клиентам.
Я не могу найти официальную информацию относительно того, гарантируется ли упорядочивание записи или нет. Это существенно важно при создании архитектуры, где клиент мог бы хотеть считать данные прямо после того, как кто-то еще сохранил их.
Если упорядочивание записи сохраняется, я могу легко проверить, полны ли данные при наличии хранилища устройства записи защита (скажите, специальный ключ), и конец операции записи.
Если никакое упорядочивание записи не гарантируется, то у меня есть серьезная проблема, потому что нет никакого способа, которым я могу быть уверен, что могу безопасно считать данные.
Я прочитал статью Werner Vogel о непротиворечивости (http://www.allthingsdistributed.com/2007/12/eventually_consistent.html), где он отмечает, что системы без монотонной непротиворечивости записи известно тверды к программе, но не говорит, гарантирует ли S3 это или нет.
Чтобы ответить на ваш прямой вопрос "Гарантирует ли Amazon S3 порядок записи?", я думаю, что нет. Хотя я бы спросил на форумах AWS, чтобы быть уверенным.
Если вы можете жить с почти идеальной согласованностью, я бы рекомендовал, чтобы записывающее устройство проверяло все файлы перед возвращением успеха. Хотя это не гарантирует, что файл будет доступен всем клиентам, этого достаточно для большинства случаев использования. Лично у меня никогда не было проблем с согласованностью S3 для клиентов, когда я делал это. Следует отметить, что это займет немного больше времени, и вы заплатите немного больше за дополнительные запросы, но в вашем случае это, вероятно, того стоит.
С другой стороны, если вам нужна гарантированная идеальная согласованность, я бы рекомендовал использовать регион, отличный от US Standard. Все регионы, кроме региона US Standard, предлагают "согласованность чтения после записи для PUTS новых объектов и конечную согласованность для PUTS перезаписи и DELETES". Это должно решить вашу проблему для новых записей, но опять же, это будет стоить немного дороже.
Best,
Zach
Developer, LongTail Video