python - 以编程方式在 FUSE 中发出命令?

标签 python http fuse

我正在尝试使用 FUSE 和 python 实现类似于 dropbox 的东西(特别是 fusepy )。我想到了两种不同的方法。如果可以的话,我更喜欢方法 1。

  1. 我想要一个客户端/服务器模型,其中客户端通过 HTTP 向服务器发送命令行请求(例如,客户端发送字符串“ls”或“cd”等)。实现 FUSE 的服务器应该在收到命令行请求时对其进行处理,并将结果发送回客户端。 为了实现这一点,我需要能够以编程方式向服务器上的 FUSE 实现发出诸如“ls”之类的命令。 有办法做到这一点吗?我可以绑定(bind)服务器的 FUSE 实现以将某些文件/流/输入视为终端/命令行吗?

  2. 我也在考虑在客户端上也实现 FUSE,并仅通过 HTTP 发送系统调用请求(例如,客户端通过 HTTP 发送字符串“chmod”或“read”,并在也请求)。这种方法似乎效率较低,因为每个系统调用都会发出一个请求,这与第一种方法中的命令行请求中的批处理系统调用相反。但是,据我所见,在服务器的 FUSE 实现中以编程方式调用系统调用似乎并不难。 如果无法完成第一种方法,我究竟该如何以编程方式调用 FUSE 实现中的系统调用?

最后,这是完全不同的方式吗?这些只是我解决问题的两个想法,但也许存在可以更好地实现客户端/服务器 FS 的其他方法。 (保管箱是如何做到这一点的?)

最佳答案

事实证明,我真正应该做的是调用 subprocess.check_output(...)。 Fuse 处理系统调用,而不是终端命令。从命令行转换为系统调用应该通过操作系统的内核来完成。在这种情况下,我向操作系统询问输出,并将该字符串返回给客户端。

关于python - 以编程方式在 FUSE 中发出命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20446379/

相关文章:

python - 将电子邮件从 procmail 传输到解析正文并保存为文本文件的 python 脚本

java - 用于 Java 的异步 HTTP 客户端

json - REST API 最佳实践 : args in query string vs in request body

javascript - AngularJS:组件树以及如何处理新创建实体的 ID(通过 HTTP)

unix - 为文件系统定义PATH_MAX?

python - pony.orm 按关系中最新的实体排序

python - TF Hub微调错误: ValueError: Failed to find data adapter that can handle input

python - 多次调用 dictConfig 是不好的做法吗?

Windows 2008 : Virtual file system(like FUSE)

Golang cmd.Start() 有时卡在 fuse 安装目录上