Мы помещаем сотни файлов изображений в Amazon S3, который наши пользователи должны синхронизировать со своими локальными каталогами. Для сохранения пространства памяти и пропускной способности, мы архивируем файлы, хранившие на S3.
На конце пользователя у них есть сценарий Python, который выполняет каждые 5 минут, чтобы получить текущий список файлов и загрузить новые/обновленные файлы.
Мой вопрос - то, что лучший способ, определяют то, что является новым или изменяется на загрузку?
В настоящее время мы добавляем дополнительный заголовок, который мы помещаем со сжатым файлом, который содержит значение MD5 несжатого файла...
Мы запускаем с файла как это:
image_file_1.tif 17MB MD5 = xxxx1234
Мы сжимаем его (с 7zip) и помещаем его в S3 (с Python/Boto):
image_file_1.tif.z 9MB MD5 = yyy3456 x-amz-meta-uncompressedmd5 = xxxx1234
Проблемы, мы не можем получить большой список файлов от S3, которые включают x-amz-meta-uncompressedmd5 заголовок без дополнительного API для Каждого (МЕДЛЕННЫЙ для сотен/тысяч файлов).
Наше наиболее практическое решение, сделали, чтобы пользователи получили полный список файлов (без дополнительных заголовков), загрузили файлы, которые не существуют локально. Если это действительно существует локально, то сделайте и дополнительный вызов API, чтобы заставить полные заголовки сравнивать локальную контрольную сумму MD5 с x-amz-meta-uncompressedmd5.
Я думаю, что должен быть лучший путь.