Подтвердить что ты не робот

Возможно ли выполнить пакетную загрузку на amazon s3?

Поддерживает ли amazon s3 пакетную загрузку? У меня есть работа, которая должна загружать каждую ночь ~ 100 тыс. Файлов, которые могут быть до 1 Гб, но сильно искажены в сторону небольших файлов (90% составляют менее 100 байт и 99% меньше 1000 байтов).

Поддерживает ли s3 API загрузку нескольких объектов в одном HTTP-вызове?

Все объекты должны быть доступны в S3 как отдельные объекты. Я не могу размещать их где-нибудь еще (FTP и т.д.) Или в другом формате (база данных, локальный диск EC2 и т.д.). Это внешнее требование, которое я не могу изменить.

4b9b3361

Ответ 1

Поддерживает ли s3 API загрузку нескольких объектов в одном HTTP-вызове?

Нет, операция S3 PUT поддерживает только загрузку одного объекта за HTTP-запрос.

Вы можете установить S3 Tools на свой компьютер, который вы хотите синхронизировать с удаленным ведром, и выполнить следующую команду:

s3cmd sync localdirectory s3://bucket/

Затем вы можете поместить эту команду в script и создать запланированное задание для запуска этой команды каждую ночь.

Это должно делать то, что вы хотите.

Инструмент выполняет синхронизацию файлов на основе хэшей MD5 и файлов, поэтому столкновение должно быть редким (если вы действительно хотите, чтобы вы могли просто использовать команду "s3cmd put", чтобы заставить слепую перезапись объектов в вашем целевом ковше).

РЕДАКТИРОВАТЬ. Также убедитесь, что вы прочитали документацию на сайте, который я связал для S3 Tools. Существуют разные флаги, необходимые для удаления файлов, удаленных локально, из ведра или игнорируемых и т.д.

Ответ 2

В качестве альтернативы вы можете загрузить S3 через инструмент AWS CLI с помощью команды sync.

aws s3 sync local_folder s3://bucket-name

Вы можете использовать этот метод для быстрой загрузки файлов на S3.

Ответ 3

Один файл (или часть файла) = один HTTP-запрос, но API-интерфейс Java теперь поддерживает эффективную загрузку нескольких файлов без необходимости писать многопоточность самостоятельно, используя TransferManager