AW C CLI S3 Многокомпонентная загрузка - PullRequest
1 голос
/ 08 мая 2020

Согласно документации ниже AWS CLI использует многостраничную загрузку, если размер файла превышает 64MB. https://awscli.amazonaws.com/v2/documentation/api/latest/topic/s3-config.html

Также по умолчанию каждая часть имеет 8MB, так как S3 multipart поддерживает до 10000 частей, это означает, что AWS CLI может отправлять файл только как multipart если размер файла не превышает 8MB * 10000 = ~78GB. Правильно ли я в этом предположении?
https://docs.aws.amazon.com/AmazonS3/latest/dev/qfacts.html

Мы можем изменить это поведение, если настроим multipart_chunksize на AWS CLI. Я понимаю, что мы должны делать каждую часть как можно меньше, чтобы в полной мере использовать преимущества многостраничной загрузки.

Мой вопрос в том, как мы можем справиться с этой конфигурацией, чтобы в полной мере использовать преимущества многостраничной загрузки и иметь возможность загружать файл разницы размеров больше 78GB?

Во избежание недоразумений, вопрос об использовании multipart. AWS CLI работает нормально, у меня нет проблем, я просто хочу убедиться, что он будет использовать multipart выгрузку, когда нам нужно отправить файл разных размеров.

1 Ответ

1 голос
/ 08 мая 2020

Ваше предположение неверно. Вы можете загружать файлы размером до 5 ТБ, используя многостраничную загрузку в S3.

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

Максимальный размер любого фрагмента составляет 5 ГБ а для чего-то большего, вы должны загружать, используя многостраничную загрузку. Таким образом, вы можете использовать любой размер до 5 ГБ для многостраничной загрузки.

Сохранение кусков как можно меньшего размера может на самом деле сократить время загрузки, так как установка соединения требует времени. Наличие небольших фрагментов может повредить время установки соединения, более крупные фрагменты могут повредить вам, потому что некоторые загрузки могут завершиться неудачно, и вам нужно будет повторить это. Здесь важен правильный размер блока.

Мы используем блоки размером 100 МБ в проекте, в который загружаем файлы размером более 100 ГБ, и это работает. Используя это ограничение, мы ограничиваем максимальный размер файла до 1 ТБ, но это нормально для наших нужд.

...