pub enum OpenDalStorage {
Memory {
operator: Operator,
client_config: OpenDalClientConfig,
},
LocalFs {
client_config: OpenDalClientConfig,
},
S3 {
config: Arc<S3Config>,
customized_credential_load: Option<CustomAwsCredentialLoader>,
client_config: OpenDalClientConfig,
},
Gcs {
config: Arc<GcsConfig>,
client_config: OpenDalClientConfig,
},
Oss {
config: Arc<OssConfig>,
client_config: OpenDalClientConfig,
},
Azdls {
config: Arc<AzdlsConfig>,
client_config: OpenDalClientConfig,
},
Hf {
config: Arc<HfConfig>,
client_config: OpenDalClientConfig,
},
}Expand description
OpenDAL-based storage implementation.
The serialized representation is not a stable format and may change between crate versions.
Variants§
Memory
Memory storage variant.
Fields
operator: OperatorPre-built memory operator.
client_config: OpenDalClientConfigBackend-independent client settings.
LocalFs
Local filesystem storage variant.
Fields
client_config: OpenDalClientConfigBackend-independent client settings.
S3
S3 storage variant.
Accepts any S3-family URL (s3://, s3a://, s3n://); the scheme is
derived from the path at call time.
Fields
customized_credential_load: Option<CustomAwsCredentialLoader>Custom AWS credential loader.
client_config: OpenDalClientConfigBackend-independent client settings.
Gcs
GCS storage variant.
Fields
client_config: OpenDalClientConfigBackend-independent client settings.
Oss
OSS storage variant.
Fields
client_config: OpenDalClientConfigBackend-independent client settings.
Azdls
Azure Data Lake Storage variant.
Accepts paths of the form
abfs[s]://<filesystem>@<account>.dfs.<endpoint-suffix>/<path> or
wasb[s]://<container>@<account>.blob.<endpoint-suffix>/<path>.
The scheme is derived from the path at call time.
Fields
client_config: OpenDalClientConfigBackend-independent client settings.
Hf
HuggingFace Hub storage variant.
Accepts paths of the form
hf://<repo_type>/<owner>/<repo>[@<revision>]/<path_in_repo>,
where <repo_type> must be one of models, datasets, spaces, or buckets.
Fields
client_config: OpenDalClientConfigBackend-independent client settings.
Trait Implementations§
Source§impl Clone for OpenDalStorage
impl Clone for OpenDalStorage
Source§fn clone(&self) -> OpenDalStorage
fn clone(&self) -> OpenDalStorage
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OpenDalStorage
impl Debug for OpenDalStorage
Source§impl<'de> Deserialize<'de> for OpenDalStorage
impl<'de> Deserialize<'de> for OpenDalStorage
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for OpenDalStorage
impl Serialize for OpenDalStorage
Source§impl Storage for OpenDalStorage
impl Storage for OpenDalStorage
Source§fn exists<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn exists<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<FileMetadata>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<FileMetadata>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn read<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Bytes>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Bytes>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn reader<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn FileRead>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn reader<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn FileRead>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn write<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
bs: Bytes,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn write<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
bs: Bytes,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn writer<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn FileWrite>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn writer<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn FileWrite>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn delete_prefix<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_prefix<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn delete_stream<'life0, 'async_trait>(
&'life0 self,
paths: BoxStream<'static, String>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_stream<'life0, 'async_trait>(
&'life0 self,
paths: BoxStream<'static, String>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn new_output(&self, path: &str) -> Result<OutputFile>
fn new_output(&self, path: &str) -> Result<OutputFile>
Auto Trait Implementations§
impl Freeze for OpenDalStorage
impl !RefUnwindSafe for OpenDalStorage
impl Send for OpenDalStorage
impl Sync for OpenDalStorage
impl Unpin for OpenDalStorage
impl UnsafeUnpin for OpenDalStorage
impl !UnwindSafe for OpenDalStorage
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: AsAny + ?Sized,
impl<T> Downcast for Twhere
T: AsAny + ?Sized,
§fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
Any.§fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
Any.§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more