3 个不稳定版本
0.1.0 | 2023 年 10 月 11 日 |
---|---|
0.0.2 | 2023 年 10 月 10 日 |
0.0.1 | 2023 年 10 月 7 日 |
#689 in 文件系统
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>
对。
目前已测试 fs
和 s3
后端。例如,以下命令将使用您的 /tmp
目录中的数据将文件系统挂载到挂载点。
cargo run <mount-point> fs root=/tmp
以下是将文件系统挂载到 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