无法在goofys挂载的文件夹中生成zip文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在goofys挂载的文件夹中生成zip文件相关的知识,希望对你有一定的参考价值。
我尝试使用goofys在已安装的目录中创建一个zip文件,但是失败并显示以下错误消息:
$ su - foo-user
$ zip hoge.zip hoge
updating: hoge
zip I/O error: Operation not supported
zip error: Input file read failure (was zipping hoge)
有什么线索可以解决这个问题吗?
我尝试了什么
在另一个目录中创建一个zip文件并将其复制到挂载点会成功。所以它似乎不像许可/授权问题。
$ zip /tmp/hoge.zip hoge
adding: hoge (stored 0%)
$ ll /tmp/hoge.zip
-rw-rw-r-- 1 foo-user foo-user 163 Apr 4 17:52 hoge.zip
$ cp /tmp/hoge.zip (path of the mount-point)
$ ll
total 5
-rw-r--r-- 1 foo-user foo-user 5 Mar 26 10:56 hoge
-rw-r--r-- 1 foo-user foo-user 163 Apr 4 17:48 hoge.zip
系统配置
- 操作系统:亚马逊Linux(EC2)
- 高飞版:0.19.0使用
挂载点的权限:
drwxr-xr-x 2 foo-user foo-user 4096 Apr 4 17:48 s3
输入文件的权限:
-rw-r--r-- 1 foo-user foo-user 5 Mar 26 10:56 hoge
设置/etc/fstab
:
(path of goofys installed)/goofys#(s3-bucket-name) (path of the mount point) fuse _netdev,allow_other,--file-mode=0644,--uid=502,--gid=502 0 0
foo-user
的Uid / gid:
$ id
uid=502(foo-user) gid=502(foo-user) groups=502(foo-user)
答案
S3不是文件系统。 Goofys尝试(令人钦佩地)弥合文件系统和对象存储之间的差距,但是存在不可克服的阻抗不匹配,需要妥协或限制。高飞选择了最佳表现之路:
在S3上难以支持或者转化为多次往返的事情要么失败(随机写入)......
Zip文件创建使用随机写入。这可以解释为什么使用-b
选项解决了这个问题。通过创建临时文件然后复制它,可以避免随机写入存储桶。
对S3的随机写入只能通过显着延迟写入或通过每次随机写入反复覆盖对象来实现,这样做不会很好并且可能牺牲可靠性,耐用性或一致性。
以上是关于无法在goofys挂载的文件夹中生成zip文件的主要内容,如果未能解决你的问题,请参考以下文章
如何通过Python删除Windows中的(g)zip文件? (在LabVIEW中生成的文件。)