Считает ли синхронизация s3cmd каждый файл по списку или устанавливает цену запроса

Я использую s3cmd для отправки сжатой резервной копии учетных записей (сервер общего хостинга) на S3. Я думаю, что помимо отправки сжатой резервной копии. При желании я могу сделать резервную копию моего сервера ввода на S3 и периодически синхронизировать его, чтобы резервная копия обновлялась.

Однако у меня более 10 000 000 файлов на сервере, и я не хочу, чтобы за запросы к спискам взималась чрезмерная плата, поскольку AWS взимает 0,005 доллара США за 1000 запросов. ( https://aws.amazon.com/s3/pricing/)

Мой вопрос: синхронизирует ли s3cmd список каталогов и проверяет контрольную сумму или свойства каждого файла, чтобы определить, должен ли файл обновляться, и если да, то считается ли каждый файл в основном списком или запросом на размещение? Таким образом, если у меня есть 10 000 000 файлов, которые мне нужно синхронизировать, с меня будет взиматься плата в размере 50 долларов США за ежедневную или еженедельную синхронизацию сервера с S3, даже если, скажем, нужно синхронизировать только 50 000 файлов?


person Marlon Owen Cruz    schedule 17.03.2016    source источник
comment
Примечание. В настоящее время рекомендуется использовать интерфейс командной строки (CLI) AWS. См. команду aws s3 sync. Ваш вопрос по-прежнему применим и к этому приложению.   -  person John Rotenstein    schedule 17.03.2016
comment
Спасибо, Джон. Я собирался спросить об этом. Теперь я предполагаю, что ответ Мэтта относится к интерфейсу командной строки AWS.   -  person Marlon Owen Cruz    schedule 18.03.2016


Ответы (1)


s3cmd выдает вызовы LIST (которые получают до 1000 объектов за вызов), а для объектов, чья контрольная сумма MD5 не включена в результаты LIST (например, для объектов, загруженных с помощью многокомпонентной загрузки, обычно> 15 МБ), да, он также выдает вызовы HEAD для каждый объект. Таким образом, даже «нулевая» синхронизация для 10 миллионов объектов приведет к выдаче множества вызовов LIST и, в зависимости от размеров ваших объектов, многих вызовов HEAD.

Вам следует подумать о том, как синхронизировать только (изменяющееся) подмножество вашего дерева вместо всех 10 миллионов (в основном неизменных) объектов, если ваш набор данных позволяет это.

person Matt Domsch    schedule 17.03.2016
comment
Спасибо за ваш ответ @matt-domsch. В своем примечании Джон упомянул, что AWS CLI теперь предпочтительнее, чем s3cmd. Тем не менее, я предполагаю, что ваш ответ применим и к AWS CLI. Но если вы говорите, что s3 будет учитывать только один запрос списка на тысячу вызовов объектов, то кажется, что если у меня есть 1 миллион объектов, я, вероятно, получу только 1000 вызовов списка, теоретически предполагая, что не будет объекта, состоящего из нескольких частей. . Но я хотел бы знать, не будет ли счетчика запросов на размещение при нулевой синхронизации, а только начальный запрос списка. - person Marlon Owen Cruz; 18.03.2016