作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个网络文件系统,我首先尝试理解 python-fuse 提供的 xmp.py。
基本上,我通过网络发送所有调用,在服务器端执行它,并将结果发送到客户端并将其返回给用户。这些部件工作得很好。
我面临的问题是,xmp.py 无法创建文件,因此问题也出现在我的网络文件系统中。
我遵循的步骤是:
安装fuse-python:
sudo apt-get install python-fuse
然后我进入 xmp.py
所在的目录位于:
cd /usr/share/doc/python-fuse/examples/
我使用以下命令行参数运行了 xmp.py 程序
python xmp.py -o root=/home/user /tmp/fuse
哪里/home/user
将被复制或安装在/tmp/fuse
上
然后我 cd 进入 /tmp/fuse
目录并尝试使用 cat
创建一个文件,例如:
cd /tmp/fuse
cat > temp.txt
我收到错误
bash: temp.txt: Invalid argument
经过一番摸索,我相信这是由于该功能造成的
def getattr(self, path):
return os.lstat("." + path)
当我执行 cat > temp.txt
时, os.lstat("./temp.txt")
被调用并抛出错误,文件为 /home/user/temp.txt
没有找到。此后,程序会卡住一段时间并降低我的计算机速度。
请帮我找出我做错了什么。
谢谢。
最佳答案
我想我已经弄清楚了,我看到的问题是一旦 os.lstat("./temp.txt")
失败,文件类的 __init__
方法被调用,然后立即调用 truncate 并且程序返回。
我遵循的一个解决方案是根本不使用文件类,并实现 Fuse 类的 open
/create
来创建文件。
这种方法对我有用。如果有人有更好的建议请告诉我。我想使用面向对象的方法并使用文件类。
关于python - fusion-python xmp.py - 无法创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10258670/
我是一名优秀的程序员,十分优秀!