在Google云端存储分区中缩小7z

问题描述 投票:0回答:1

我正在尝试在Google云端存储分区中收缩7z多部分容器。我可以在不在本地复制数据并重新上传的情况下执行此操作吗?

我想确保我执行文件的提取而不会产生不必要的开销。我不确定是否有任何方法可以直接在Bucket中完成。

在理想情况下,我可以将档案直接解压缩到Bucket中。

google-cloud-platform cloud google-cloud-storage 7zip bucket
1个回答
0
投票

我相信你可能会混淆现在使用的术语存储,如在File System抽象访问的持久磁盘中,以及你可以用Google Cloud Storage Bucket做什么。

您可以在Objects上进行多项操作,这些操作是驻留在Buckets中的数据,包括上传和下载。

因此,您在Bucket中有一个压缩文件,并且您希望将其解压缩并将解压缩的内容也放在Bucket中。然后,您必须将压缩文件下载到能够解压缩的某台计算机上,之后您将上传解压缩的内容。

我会告诉你一个示威:

确保您有一个存档文件,当前目录中没有其他内容。

ARCHIVE=ar0000.7z

如果您还没有创建一个Bucket,请创建一个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 flag,加速上传,输出将混乱)。

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

列出Bucket的内容:

gsutil ls -r gs://sevenzipblobber/

您还可以使用客户端服务器模式,其中服务器负责解压缩存档并再次将内容上载到云存储。

客户端可能是由Bucket上的事件触发的Google Cloud Functions,在这种情况下,服务器可能是等待上载的HTTP服务器。或者客户端可能是Cloud Pub/Sub Notifications for Cloud Storage,因此服务器必须订阅相应的主题。

© www.soinside.com 2019 - 2024. All rights reserved.