Как скачать S3-Bucket, сжимать на лету и перезагружать в другое ведро s3 без локальной загрузки? - PullRequest
0 голосов
/ 27 октября 2019

Я хочу загрузить содержимое корзины s3 (размещенной на wasabi, утверждающей, что она полностью совместима с s3) в мой VPS, tar и gzip и gpg, а затем повторно загрузить этот архив в другую корзину s3 на васаби!

Мой VPS-компьютер имеет только 30 ГБ дискового пространства, весь объем составляет около 1000 ГБ, поэтому мне нужно загружать, архивировать, шифровать и повторно загружать все это на лету, не сохраняя данные локально.

Кажется, секрет в использовании |труба командование. Но я застрял даже в начале загрузки файла в архив локально (я хочу пойти шаг за шагом):

s3cmd sync s3://mybucket | tar cvz archive.tar.gz -

В конце концов я ожидаю некоторый код, подобный этому:

s3cmd sync s3://mybucket | tar cvz | gpg --passphrase secretpassword | s3cmd put s3://theotherbucket/archive.tar.gz.gpg

но пока не работает!

Чего мне не хватает?

1 Ответ

1 голос
/ 28 октября 2019

Команда aws s3 sync копирует несколько файлов в место назначения. Он не копирует в stdout.

. Вы можете использовать aws s3 cp s3://mybucket - (включая тире в конце), чтобы скопировать содержимое файла в stdout.

Из cp - Справочник по командам CLI AWS :

Следующая команда cp загружает объект S3 локально в виде потока на стандартный вывод. Загрузка в виде потока в настоящее время несовместима с параметром --recursive:

aws s3 cp s3://mybucket/stream.txt -

Это будет работать только для одного файла.

...