Я хочу периодически перемещать изображения из локального каталога в s3, но я не хочу перезаписывать файлы, которые были нажаты ранее, которые не менялись с тех пор , Вот варианты, которые я рассмотрел:Не загружать в aws s3, если точный файл уже существует в bucket
Сравните длину контента. Недостаток: новая версия файла может иметь одинаковую длину содержимого, но быть другой.
Сохраните локальную информацию о модификации в метаданных s3, чтобы сравнить их в момент времени. Недостаток: для этого требуется POST и PUT, удвоение загруженных данных, добавление накладных расходов к задаче push и может быть непоследовательным при запуске с разных компьютеров.
Должен быть лучший способ. Что мне не хватает?
P.S. Я использую жемчужину aws-s3 в задаче грабли.
Невозможно сохранить хэш изображений в метаданных S3 при их первой загрузке, а затем использовать API, который позволяет вам получать только заголовки S3 и сравнивать хэш с локально рассчитанным хэш для текущей версии файла в локальной системе? – Daan
Спасибо, Даан. Документация показала, что из-за ограничений в публичном API метаданные можно было добавить только путем получения изображения, добавления метаданных и сохранения его снова, в результате чего была добавлена двойная загрузка. Это, по общему признанию, мало смысла. Может быть, ограничение ушло, или я не ошибаюсь. Я буду экспериментировать и видеть ... – glortho
Это верно для добавления метаданных в существующие файлы, но не на начальной стадии загрузки, я думаю? :-) – Daan