Я полагаю, что вы, возможно, путаете термин «хранилище», которое будет использоваться в наши дни, например, с постоянным диском, доступным по абстракции Файловая система , и тем, что вы можете сделать с 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 для облачного хранилища , и, следовательно, сервер должен быть подписан на соответствующую тему.