#ipfs #webdav #access #drive #mount #read-write

ipfs-webdav

一个 WebDAV 服务器,允许直接访问作为挂载驱动器的 IPFS MFS

2 个不稳定版本

0.2.0 2023年11月9日
0.1.0 2022年10月7日

#523文件系统

MIT/Apache

185KB
743

ipfs-webdav

ipfs-webdav 是一个 WebDAV 服务器,允许直接访问 IPFSMFS 作为挂载驱动器。它允许用户通过文件浏览器或终端直接与 MFS 进行交互。

尽管 IPFS 目前提供了挂载 IPFS 文件系统的功能,但该功能仍然是 实验性的,并且仅限于只读访问。 ipfs-webdav 提供了一种方便的方式,可以直接读写存储在本地 IPFS 节点上的文件,而无需与 IPFS 进行交互,无论是通过 web-ui 还是 cli。

ipfs-webdav architecture

安装

在安装 ipfs-webdav 之前,请确保已安装以下依赖项

一旦所有依赖项都已安装,请按照以下步骤安装 ipfs-webdav

  1. 克隆 git 仓库: git clone https://github.com/debox-network/ipfs-webdav
  2. 导航到仓库根目录: cd ipfs-webdav
  3. 组装项目 cargo build --package ipfs-webdav --example base --release

运行 ipfs-webdav

一旦在您的系统上安装了 ipfs-webdav,运行该项目

  1. 在终端中启动 IPFS 守护进程: ipfs daemon
  2. 在另一个终端中运行 ipfs-webdavcd target/release/examples && ./base

挂载

当 IPFS 守护进程和 ipfs-webdav 守护进程都启动后,WebDAV 文件系统可以被挂载并立即使用。挂载说明根据您的操作系统略有不同。请参考下方的适当说明。

Linux - 通过文件浏览器

  1. 打开默认的文件浏览器(通常是 gnome-files/nautilus)
  2. 在左侧面板底部导航到 + 其他位置
  3. 在底部栏中输入 dav://127.0.0.1:4918(在 Enter server address... 提示处)
  4. 挂载的文件系统应显示在左侧面板中:127.0.0.1:4918

Linux - 通过 CLI(基于 Debian/Ubuntu 的发行版)

  1. 安装 davfs2 软件包:sudo apt-get install davfs2
  2. 创建挂载点目录:sudo mkdir /mnt/dav
  3. 挂载 WebDAV 共享:sudo mount -t davfs http://127.0.0.1:4918 /mnt/dav

Windows

待定

MacOS

待定

测试

ipfs-webdav 实现了基本的 RFC4918 WebDAV 规范。

测试任何 WebDAV 实现的官方标准是 litmus。所有测试都将使用它运行。

安装 Litmus

要开始,首先安装 Litmus

  1. 下载存档:curl -O http://www.webdav.org/neon/litmus/litmus-0.13.tar.gz
  2. 解压它:tar xf litmus-0.13.tar.gz
  3. 导航到程序文件夹:cd litmus-0.13
  4. 配置构建:./configure
  5. 构建和安装:make

运行 Litmus

安装 Litmus 后,运行它以测试 ipfs-webdavlitmus dav://127.0.0.1:4918

运行 Litmus 测试的预期输出

(省略以排除个别测试)

-> running `basic':  
...  
<- summary for `basic': of 16 tests run: 16 passed, 0 failed. 100.0%  
-> running `copymove':  
...  
<- summary for `copymove': of 13 tests run: 13 passed, 0 failed. 100.0%  
-> running `props':  
...  
<- summary for `props': of 30 tests run: 30 passed, 0 failed. 100.0%  
-> running `locks':  
...  
<- summary for `locks': of 41 tests run: 41 passed, 0 failed. 100.0%  
-> running `http':  
...  
<- summary for `http': of 4 tests run: 4 passed, 0 failed. 100.0%

感谢 & 致谢

webdav-handler

WebDAV 功能的大部分基于 webdav-handler。向 Miquel 表示衷心的感谢,他为创建/维护 WebDAV 协议的优雅 Rust 实现做出了不懈的努力。

ipfs-api

ipfs-api 是 IPFS RPC API 的优秀 Rust 实现,极大地帮助了与 IPFS 的交互。

许可证

根据您的选择,许可如下:

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在作品中的任何贡献,将按上述方式双重许可,没有任何额外的条款或条件。

依赖项

~18-31MB
~479K SLoC