Как загрузить большие файлы на S3 при нестабильном соединении?

Как загрузить большие файлы на S3 при нестабильном соединении?

У меня есть куча файлов (от 500 МБ до 7 ГБ), которые мне нужно загрузить в контейнер S3. Мое соединение очень нестабильно.

Я попытался загрузить файл размером 500 МБ через , s3cmdно время ожидания истекло после того, как он был готов на 91% (что заняло 16 часов)

Я пробовал с CyberDuck, но то же самое произошло. Он завис после 20% или около того, и когда я попытался повторить передачу, она началась с самого начала. CyberDuck должен иметь поддержку multipart, но, полагаю, нет...

Я мог бы разделить файлы на более мелкие файлы следующим образом:Как разделить .zip-файл на несколько сегментов?, но я бы предпочел не делать этого, если только это не мой единственный вариант. Какую хорошую программу я могу использовать, чтобы она позволяла мне загружать большие файлы на S3 с поддержкой возобновления?

решение1

Я только что попробовал использовать s3tools (s3cmd-1.5.0-rc1). Получил эту подсказку из их FAQhttp://s3tools.org/kb/item13.htm. См. ниже.

Поддерживает ли s3cmd многокомпонентную загрузку?

Да, последняя версия s3cmd поддерживает многокомпонентную загрузку Amazon S3.

Многокомпонентные загрузки автоматически используются, когда файл для загрузки больше 15 МБ. В этом случае файл разбивается на несколько частей, каждая из которых имеет размер 15 МБ (последняя часть может быть меньше). Затем каждая часть загружается отдельно, а затем восстанавливается в месте назначения после завершения передачи.

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

В s3cmd есть две опции, связанные с многокомпонентной загрузкой. Это:

--disable-multipart

Отключить многокомпонентную загрузку для всех файлов

и

--multipart-chunk-size-mb=РАЗМЕР

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

Поэтому, когда я загружаю, я выбираю наименьший размер фрагмента. Ниже вы должны увидеть разделение и возобновление загрузки.

$ s3cmd put --multipart-chunk-size-mb=5 some_video.mp4 s3://some_bucket/

some_video.mp4 -> s3://some_bucket/some_video.mp4  [part 1 of 52, 5MB]
 5242880 of 5242880   100% in  164s    31.08 kB/s  done
some_video.mp4 -> s3://some_bucket/some_video.mp4  [part 2 of 52, 5MB]
 5242880 of 5242880   100% in  193s    26.46 kB/s  done
some_video.mp4 -> s3://some_bucket/some_video.mp4  [part 3 of 52, 5MB]
 2023424 of 5242880    38% in  135s    14.59 kB/s^CERROR: 
some_video.mp4' part 3 failed. Use
  /usr/local/bin/s3cmd abortmp s3://some_bucket/some_video.mp4 XXX_SOME_HASH_XXX
to abort the upload, or
  /usr/local/bin/s3cmd --upload-id XXX_SOME_HASH_XXX put ...
to continue the upload.
See ya!

Затем я продолжу.

/usr/local/bin/s3cmd --upload-id XXX_SOME_HASH_XXX put --multipart-chunk-size-mb=5 some_video.mp4 s3://some_bucket/

решение2

Я считаю, что в Cyberduck в окне трансферов можно щелкнуть правой кнопкой мыши и выбрать «возобновить».

Если это не сработает,Морошкаподдерживает возобновление загрузок

решение3

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

Кстати, он оснащен множеством других функций: поддержка больших файлов, массовая передача данных, фильтры, сравнение каталогов, удаленный поиск файлов, перетаскивание, настройка ограничений скорости.

Я член команды FileZilla Pro.

Узнайте больше наhttps://filezillapro.comи вhttps://youtube.com/c/FileZillaPro

Связанный контент