#opendal #userspace #back-end #memory #fs #dal-f

app dalfs

基于 OpenDAL 的用户空间文件系统

3 个不稳定版本

0.1.0 2023 年 10 月 11 日
0.0.2 2023 年 10 月 10 日
0.0.1 2023 年 10 月 7 日

#689 in 文件系统

MIT 许可证

35KB
717

DalFs:基于 OpenDAL 的用户空间文件系统

仍为工作进展中!!!可能存在错误和风险,请使用虚拟机进行测试。自行承担风险。

目前,它可以通过 OpenDAL 提供用户空间文件系统的支持,因此支持以下后端作为数据源

  • Atomicserver
  • Azblob
  • Azdls
  • Cacache
  • Cos
  • Dashmap
  • Etcd
  • Foundationdb
  • Fs
  • Ftp
  • Gcs
  • Ghac
  • Hdfs
  • Http
  • Ipfs
  • Ipmfs
  • Memcached
  • Memory
  • MiniMoka
  • Moka
  • Obs
  • Onedrive
  • Gdrive
  • Dropbox
  • Oss
  • Persy
  • Redis
  • Postgresql
  • Rocksdb
  • S3
  • Sftp
  • Sled
  • Supabase
  • VercelArtifacts
  • Wasabi
  • Webdav
  • Webhdfs
  • Redb
  • Tikv

由于我只是用了几个小时来构思和实现它,所以目前的功能非常有限。

以下是实现的主要 fs 功能

  • 读取目录
  • 读取文件
  • 读取属性(未很好地实现)
  • 创建目录
  • 创建文件
  • 写入文件

或尚未实现

  • 权限 (?)
  • Fsync (?)
  • ...

构建

为了使用 Rust fuser crate,您可能需要安装 libfuse-dev

只需运行以下命令来构建它

cargo build

运行

要运行,您需要提供一系列参数

cargo run <mount-point> <scheme> ...

其中,mount-point 是挂载文件系统的路径;scheme 是 OpenDAL 方案,全部为小写(例如 "ftp"、"s3"、"fs" 等)。

其余参数是 OpenDAL 方案所需的 <key>=<value> 对。

目前已测试 fss3 后端。例如,以下命令将使用您的 /tmp 目录中的数据将文件系统挂载到挂载点。

cargo run <mount-point> fs root=/tmp
image

以下是将文件系统挂载到 s3 的示例

cargo run <mount-point> s3 root=/tmp endpoint=<end-point-url> bucket=<bucket> access_key_id=<access-key-id> secret_access_key=<secret-access-key> region=auto

有关更多详细信息和其他后端,请参阅 OpenDAL 方案文档

贡献

欢迎所有类型的贡献。但我会首先专注于功能开发。

依赖关系

~17-31MB
~498K SLoC