如何在Google Cloud Shell中解压Google Cloud Storage存储桶内的zip压缩包
报错原因说明
你遇到的两个报错均属于命令使用逻辑错误:
unzip是运行在本地文件系统的工具,无法直接识别gs://开头的Google Cloud Storage(下称GCS)对象存储路径,因此返回找不到文件的错误gsutil命令必须搭配具体子命令(如ls/cp/mv等)使用,不能直接填写存储桶路径作为参数,因此返回无效命令的错误
问题1:在Google Cloud Shell中访问GCS存储桶目录的方法
- 方法1:直接通过
gsutil命令操作,无需进入目录
常用操作示例:- 列存储桶内文件:
gsutil ls gs://<你的存储桶名>/<可选子路径>/ - 查看文件内容:
gsutil cat gs://<你的存储桶名>/<文件名> - 上传本地文件到存储桶:
gsutil cp <本地文件路径> gs://<你的存储桶名>/<目标路径>/
- 列存储桶内文件:
- 方法2:将GCS存储桶挂载到Cloud Shell本地目录,可像操作本地文件夹一样访问
操作命令:# 新建本地挂载目录 mkdir ~/gcs_mount # 挂载存储桶到本地目录 gcsfuse <你的存储桶名> ~/gcs_mount # 进入存储桶目录 cd ~/gcs_mount
问题2:解压GCS存储桶内ZIP格式文件的方法
方法1:小文件适用,先拷贝到本地再解压
步骤:
- 将ZIP文件从GCS拷贝到Cloud Shell本地当前目录:
gsutil cp gs://bucket-name/zip-file-name.zip . - 执行本地解压命令:
unzip zip-file-name.zip - 如需将解压后的文件传回GCS,执行递归上传命令:
gsutil cp -r ./<解压后的目录名> gs://bucket-name/<目标存储路径>/
方法2:大文件适用,直接操作挂载目录无需拷贝
如果你已经按照问题1的方法2将存储桶挂载到本地,直接进入挂载目录后执行解压命令即可:
cd ~/gcs_mount unzip zip-file-name.zip
解压后的文件会自动同步到GCS存储桶,无需手动上传。
内容的提问来源于stack exchange,提问作者KosD
相关产品推荐
相关产品推荐

