Назад | Перейти на главную страницу

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

У меня возникли проблемы с загрузкой большого (800 МБ) файла на s3 с помощью aws инструмент командной строки. Первая попытка завершилась (через много часов), но ее не было видно, и мне сообщили (здесь), что она была съедена гоблинами, и мне нужно начать заново.

Я провел тест с файлом размером 16 МБ, он загрузил 3 части и завершился без проблем. Я вижу это там с aws s3 ls s3://mybucket.

Итак, я попробовал с aws s3 cp bigfile.tgz s3://mybucket. Но через 26 минут я заметил, что у меня три сбоя загрузки, каждая из которых выглядит следующим образом:

upload failed: ./bigfile.tgz to s3://mybucket/bigfile.tgz
HTTPSConnectionPool(host='s3-eu-west-1.amazonaws.com', port=443): Max retries exceeded with url: /mybucket/bigfile.tgz?partNumber=8&uploadId=m_jMF.[elided]UPz (Caused by <class 'ConnectionResetError'>: [Errno 104] Connection reset by peer)

На самом деле в третьем сообщении говорится: «Причина: [Errno 32] Broken pipe)», а не «Причина: [Errno 104] Connection reset by peer».

На данный момент он все еще работает и говорит:

Completed 16 of 120 part(s) with -2 file(s) remaining

Это случалось раньше, и я просто проигнорировал это, полагая, что если бы это была фатальная ошибка, она бы остановилась. Теперь мне интересно, собирается ли он потратить еще 3 часа, глотая, и снова даст мне невидимый файл, потому что некоторые части не удалось загрузить?

Если это так, мой вопрос: как мне загрузить большой файл в s3 через интернет-соединение, которое иногда вызывает эти проблемы? Есть ли способ сказать ему не сдаваться так легко?


ОБНОВИТЬ: Я попытался использовать бесплатный Wi-Fi в другом месте, и файл был завершен быстро, и ни одного из этих сообщений об ошибках. Итак, все в порядке с файлом или моей настройкой s3. Все еще надеюсь найти какой-нибудь вариант конфигурации, чтобы я мог сказать ему, чтобы он постоянно повторял каждую часть.

Ты можешь использовать Клиент Minio aka mc, Это открытый исходный код и совместим с AWS S3.

Клиент Minio имеет resume session команда, которая загрузит объект, на котором он был оставлен при последнем отключении.

Я создал Youtube видео показывает то же самое

Надеюсь, поможет. Отказ от ответственности: я работаю на Минио