У меня есть куча файлов (от 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