В последнее время мы заметили, что наш счет AWS был выше, чем обычно.Это связано с добавлением задачи aws s3 sync
к нашему обычному процессу сборки.Процесс сборки генерирует около 3000 файлов.После сборки мы запускаем aws s3 sync
, чтобы загрузить их массово в корзину.Проблема в том, что это дорого.Каждая загрузка обходится нам в ~ 2 доллара (мы думаем), и это в сумме составляет ежемесячный счет, который поднимает бровь.
Все, кроме, может быть, 1 или 2 из этих файлов фактически меняются от сборки к сборке.Остальные всегда одинаковы.Тем не менее, aws s3 sync
видит, что все они изменились, и загружает всю партию.
В документации сказано, что aws s3 sync
сравнивает дату последнего изменения файла и размер байта, чтобы определить, должен ли он быть загружен.Сервер сборки каждый раз создает все эти файлы как новые, поэтому дата последнего изменения всегда изменяется.
Я хотел бы получить контрольную сумму или хэш для каждого файла, а затемиспользуйте этот хеш для сравнения файлов. Amazon s3 уже имеет поле etag, которое может быть хешем MD5 файла. Но команда aws s3 sync
не использует etag.
Есть ли способ использовать etag?Есть ли другой способ сделать это?
Конечным результатом является то, что я хотел бы только загрузить 1 или 2 файла, которые на самом деле отличаются (и сохранить огромную стоимость)