У меня есть несколько больших файлов в моей учетной записи на Linux, которые мне нужно загрузить в свою учетную запись S3. Я не хочу сначала загружать их, а затем загружать их в S3.
Можно ли как-нибудь «загрузить» его через командную строку Linux? Или я могу получить к нему доступ через веб-сайт, работающий с Lynx?
источник
Amazon также предоставляет свои собственные инструменты CLI.
С http://aws.amazon.com/cli/
Документация для команд, связанных с файлами, здесь .
источник
Если вы не можете (возможно, вы используете общий хост) или не хотите устанавливать дополнительные инструменты, можно просто использовать bash, curl и openssl.
http://tmont.com/blargh/2014/1/uploading-to-s3-in-bash
Обратите внимание, что я изменил этот скрипт из приведенного выше по ссылке. Я добавил
-L
опцию, потому что AWS может вставить туда перенаправление.-L
Вариант будет следовать редирект для вас.Еще одна оговорка. Это не будет работать для файлов размером более 5 ГБ. Для этого требуется загрузка из нескольких частей, которая потребует более сложного сценария.
источник
POSIX-совместимый сценарий оболочки, который требует только openssl, curl и sed; поддержка AWS Signature Version 4, которая требуется для региона
eu-central-1
(Франкфурт) и рекомендуется для остальных:https://gist.github.com/vszakats/2917d28a951844ab80b1
Обратите внимание, что скрипт включит серверную часть
Шифрование AES256 по умолчанию.
источник
The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256
В качестве альтернативы вы можете попробовать https://github.com/minio/mc
mc
предоставляет минимальные инструменты для работы с облачным хранилищем и файловыми системами, совместимыми с Amazon S3. Он имеет такие функции, как возобновляемая загрузка, индикатор выполнения, параллельное копирование.mc
написан на Golang и выпущен под лицензией Apache v2.источник
Я обнаружил, что привязки Python AWS в
boto
package (pip install boto
) полезны для загрузки данных в S3.Следующий скрипт может называться следующим образом:
python script_name.py "sub_bucket_name" "*.zip"
гдеsub_bucket_name
указывает имя каталога, в котором файлы должны храниться на S3, и*.zip
представляет собой глобальный путь, обозначающий один или несколько файлов для загрузки:источник