Crate fuse3_opendal
source ·Expand description
fuse3_opendal
is an fuse3
implementation using opendal.
This crate can help you to access ANY storage services by mounting locally by FUSE
.
use fuse3::path::Session;
use fuse3::MountOptions;
use fuse3::Result;
use fuse3_opendal::Filesystem;
use opendal::services::Memory;
use opendal::Operator;
#[tokio::test]
async fn test() -> Result<()> {
// Build opendal Operator.
let op = Operator::new(Memory::default())?.finish();
// Build fuse3 file system.
let fs = Filesystem::new(op, 1000, 1000);
// Configure mount options.
let mount_options = MountOptions::default();
// Start a fuse3 session and mount it.
let mut mount_handle = Session::new(mount_options)
.mount_with_unprivileged(fs, "/tmp/mount_test")
.await?;
let handle = &mut mount_handle;
tokio::select! {
res = handle => res?,
_ = tokio::signal::ctrl_c() => {
mount_handle.unmount().await?
}
}
Ok(())
}
Structs§
Filesystem
represents the filesystem that implements [PathFilesystem
] by opendal.