Я использую Amazon S3 для хранения большого количества текстовых файлов.
Мое программное обеспечение написано на Java, и я использую официальный S3 SDK.
Помимо создания/удаления/получения/, мне часто нужно добавлять новое содержимое в файлы.
S3 не поддерживает добавление, поэтому я реализовал операцию добавления, которая в основном:
- с S3 GET получает метаданные файла из S3
- с S3 GET загружает весь файл в локальную копию
- выполняет добавление к локальной копии
- с S3 PUT загружает локальный файл на S3, перезаписывая старый.
Добавления никогда не выполняются одновременно.
Я протестировал программное обеспечение, и пока оно работает хорошо.
И вот моя проблема: в сценариях, где добавление происходит очень и очень часто, когда я выполняю добавление, большие части моих файлов теряются. Может ли это зависеть от возможной согласованности S3 при перезаписи PUT?
Спасибо за вашу помощь!