在Google Cloud上,我有一个Linux Compute Engine和一个存储桶。我已使用gcsfuse(根据Google的建议)将存储桶作为驱动器安装到CE上(如Google所建议的那样),我时不时将一个很大的7zip存档(数十GB)上传到存储桶中。
当我登录到CE的终端时,转到已安装的存储桶文件夹,并尝试使用以下命令将文件解压缩(在同一位置):
new ol.style.Circle({
radius: 10,
stroke: new ol.style.Stroke({
color: "red",
width: 2
}),
fill: new ol.style.Fill({
color: "blue"
})
})
会将文件最多解压缩100%(这需要几分钟),最后它将失败,并显示以下信息:
7z x myarchive.7z
此后,如果我查看存储分区的内容,则会显示解压缩的文件名,但是文件名为0 KB。
我了解到ERROR: E_FAIL
Archives with Errors: 1
通常与空间不足有关,但是Google存储桶应该具有无限的空间(对单个文件大小有限制)。例如,命令E_FAIL
表示已安装的存储桶应具有1 PB的可用存储空间。
有人在那里有类似的设置/问题吗?
答案 0 :(得分:2)
如注释中所建议,即使您从已挂载的目录发出命令,解压缩过程也可能需要对本地文件系统执行某些特定操作。
实际上,由于GCS装入的文件系统不是传统的FS,因此某些操作可能需要传输到本地磁盘(例如,see the docs的随机写入就是这种情况):
随机写入是通过读取整个Blob,在本地进行编辑并将整个修改后的Blob写回到Cloud Storage来完成的。对大文件的小写操作可以按预期工作,但速度慢且昂贵。
为确保解压缩过程具有足够的可用大小,并确保在此过程中可能创建了临时文件,应增加本地磁盘的容量。