Дефляция 7z в Google Cloud Storage Bucket - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь удалить 7z многокомпонентный контейнер из Google Cloud Storage Bucket.Могу ли я сделать это без локального копирования данных и повторной загрузки?

Я хочу убедиться, что я выполняю извлечение файлов без создания ненужных накладных расходов.Я не уверен, есть ли способ сделать это непосредственно в Bucket.

В идеальном случае я мог бы распаковать архивы непосредственно в Bucket.

1 Ответ

0 голосов
/ 05 апреля 2019

Я полагаю, что вы, возможно, путаете термин «хранилище», которое будет использоваться в наши дни, например, с постоянным диском, доступным по абстракции Файловая система , и тем, что вы можете сделать с Google Cloud Storage Bucket .

Вы можете выполнить несколько операций с Объектами , которые представляют собой фрагменты данных, которые находятся в Buckets, включая выгрузку и загрузку.

Итак, у вас есть сжатый файл в Bucket, и вы хотите распаковать его, а также распакованный контент в Bucket. Затем вам нужно загрузить сжатый файл на какой-нибудь компьютер, который может распаковать его, и после этого вы загрузите распакованный контент.

Я оставлю вас здесь демонстрацию:

Убедитесь, что у вас есть архивный файл и больше ничего в текущем каталоге.

ARCHIVE=ar0000.7z

Создайте Bucket, если вы его еще не создали:

gsutil mb gs://sevenzipblobber

Загрузить файл архива в Bucket:

gsutil cp -v $ARCHIVE gs://sevenzipblobber/archives/

Скачать файл архива из Bucket (это можно сделать из любого другого Bucket в любое другое время):

gsutil cp -v gs://sevenzipblobber/archives/$ARCHIVE .

Извлеките и удалите архив:

7z x $ARCHIVE && rm -v $ARCHIVE

Загрузить в Bucket содержимое текущего каталога, которое должно быть содержимым распакованного файла архива (имейте в виду, что с флагом -m , который ускоряет загрузку, вывод будет путаться).

gsutil -m cp -vr . gs://sevenzipblobber/dearchives/$ARCHIVE

Список содержимого Bucket:

gsutil ls -r gs://sevenzipblobber/

Вы также можете использовать шаблон клиент-сервер, где сервер будет отвечать за распаковку архива и повторную загрузку содержимого в облачное хранилище.

Клиент может быть Google Cloud Functions , вызванный событием в Bucket, в этом случае Сервер может быть HTTP-сервером, ожидающим загрузки. Или клиент может быть Cloud Pub / Sub Notifications для облачного хранилища , и, следовательно, сервер должен быть подписан на соответствующую тему.

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