Как я могу загрузить зашифрованный файл .gz из AWS S3 bucket - PullRequest
0 голосов
/ 01 апреля 2020

Я создаю резервную копию экземпляра nextcloud, сжимаю и шифрую его и сохраняю в хранилище S3. Когда я вхожу в корзину, у меня есть файл с именем backup.tar.gz. Отлично.

Теперь я загружаю файл из корзины и получаю файл .tar, который, очевидно, делает мою резервную копию совершенно бесполезной. Я не могу расшифровать это. Если я вручную сохраню файл с расширением .gz, он все равно не расшифрует, а скажет tar: Error opening archive: Unrecognized archive format.

Когда я пытаюсь загрузить его через CLI, он не загружает файл, а говорит: usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]:

aws s3 cp s3://mybucket/myfile.tar.gz

Проблема также упоминается здесь: https://forums.aws.amazon.com/thread.jspa?threadID=250926, где единственным ответом является «почему бы не использовать AWS снимок для резервного копирования вашего экземпляра EC2».

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

Я мог бы также сделать это, если необходимо, с помощью скрипта python, но IDK, если это будет работать лучше?

Помощь очень ценится! Заранее спасибо!

Я шифрую вот так:

tar -czf - /path/to/file | openssl enc -e -aes256 -pbkdf2 -salt -out backup.tar.gz -pass pass:$ENCRYPTION_PASS

1 Ответ

2 голосов
/ 01 апреля 2020

Вы можете загрузить файл с S3, используя awscli, следующим образом:

aws s3 cp s3://mybucket/myfile.tar.gz .

Обратите внимание на конечный период, который означает «к текущей папке».

Или вы можете переименовать файл во время загрузки, следующим образом:

aws s3 cp s3://mybucket/myfile.tar.gz xyz.tar.gz

Возможно, я полагаю, что если вы загрузите tar.gz с помощью браузера или другого инструмента (не awscli), тогда этот инструмент может попытаться быть полезным и распаковать файл GZ для вас в полете, в результате чего файл TAR. Но awscli не будет делать это изначально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...