У меня есть служба, которая генерирует большие наборы данных, в которых фактически изменяется только несколько файлов, а остальные остаются неизменными (но все еще находятся в папке с данными). Нам необходимо сохранить каждую версию наборов данных, но я хотел бы использовать управление версиями объектов, чтобы сократить расходы на мое облачное архивное хранилище. Если я загружу новый набор данных с большим количеством старых файлов и только с несколькими новыми, будет ли корзина генерировать только новые версии объектов, которые изменились? Будет ли в папке один и тот же набор файлов с несколькими версиями?
Каждый раз вы загружаете файл, S3 создает новая версия. Даже если у файла такое же содержимое.
Чтобы обойти эту проблему, вам необходимо:
В качестве альтернативы используйте такие инструменты, как aws s3 sync
или s3cmd sync
которые делают именно это из командной строки или сценариев оболочки.
Надеюсь, это поможет :)
Вы включаете управление версиями объектов для корзины. После включения облачное хранилище создает архивную версию объекта каждый раз, когда действующая версия объекта перезаписывается или удаляется.
Хотя, возможно, прямо об этом не говорится, каждый раз, когда живая версия объекта перезаписывается включает случай, когда вы перезаписываете объект с точно такой же полезной нагрузкой.
Чтобы этого избежать, вам нужно загружать объекты с помощью утилиты, которая избегает перезаписи неизмененных файлов. gsutil rsync
появляется чтобы сделать это, но прочтите документацию и понаблюдайте за его поведением, потому что, хотя он может синхронизироваться с временными метками или контрольными суммами, он, похоже, предпочитает временные метки, поэтому может не делать правильных действий, если локальные файлы идентичны, но выглядят более новыми.