pub struct OperatorFuture<I, O, F: Future<Output = Result<O>>> { /* private fields */ }Expand description
Implementations§
Source§impl<F: Future<Output = Result<Metadata>>> OperatorFuture<StatOptions, Metadata, F>
impl<F: Future<Output = Result<Metadata>>> OperatorFuture<StatOptions, Metadata, F>
Sourcepub fn if_match(self, v: &str) -> Self
pub fn if_match(self, v: &str) -> Self
Stat only when the file has this exact ETag.
Refer to options::StatOptions::if_match for the full contract.
Sourcepub fn if_none_match(self, v: &str) -> Self
pub fn if_none_match(self, v: &str) -> Self
Stat only when the file does not have this ETag.
Refer to options::StatOptions::if_none_match for the full contract.
Sourcepub fn if_version_match(self, v: &str) -> Self
pub fn if_version_match(self, v: &str) -> Self
Stat only when the file has this exact version.
Refer to options::StatOptions::if_version_match for the full contract.
Sourcepub fn if_version_not_match(self, v: &str) -> Self
pub fn if_version_not_match(self, v: &str) -> Self
Stat only when the file does not have this version.
Refer to options::StatOptions::if_version_not_match for the full contract.
Sourcepub fn if_modified_since(self, v: Timestamp) -> Self
pub fn if_modified_since(self, v: Timestamp) -> Self
Stat only when the file was modified after this timestamp.
Refer to options::StatOptions::if_modified_since for the full contract.
Sourcepub fn if_unmodified_since(self, v: Timestamp) -> Self
pub fn if_unmodified_since(self, v: Timestamp) -> Self
Stat only when the file was not modified after this timestamp.
Refer to options::StatOptions::if_unmodified_since for the full contract.
Sourcepub fn version(self, v: &str) -> Self
pub fn version(self, v: &str) -> Self
Stat the given version of the file instead of the current one.
Refer to options::StatOptions::version for the full contract.
Source§impl<F: Future<Output = Result<PresignedRequest>>> OperatorFuture<(StatOptions, Duration), PresignedRequest, F>
impl<F: Future<Output = Result<PresignedRequest>>> OperatorFuture<(StatOptions, Duration), PresignedRequest, F>
Sourcepub fn override_content_disposition(self, v: &str) -> Self
pub fn override_content_disposition(self, v: &str) -> Self
Refer to options::StatOptions::override_content_disposition for more details.
Sourcepub fn override_cache_control(self, v: &str) -> Self
pub fn override_cache_control(self, v: &str) -> Self
Refer to options::StatOptions::override_cache_control for more details.
Sourcepub fn override_content_type(self, v: &str) -> Self
pub fn override_content_type(self, v: &str) -> Self
Refer to options::StatOptions::override_content_type for more details.
Sourcepub fn if_match(self, v: &str) -> Self
pub fn if_match(self, v: &str) -> Self
Make the presigned request stat only when the file has this exact ETag.
Refer to options::StatOptions::if_match for the full contract.
Sourcepub fn if_none_match(self, v: &str) -> Self
pub fn if_none_match(self, v: &str) -> Self
Make the presigned request stat only when the file does not have this ETag.
Refer to options::StatOptions::if_none_match for the full contract.
Source§impl<F: Future<Output = Result<PresignedRequest>>> OperatorFuture<(ReadOptions, Duration), PresignedRequest, F>
impl<F: Future<Output = Result<PresignedRequest>>> OperatorFuture<(ReadOptions, Duration), PresignedRequest, F>
Sourcepub fn override_content_disposition(self, v: &str) -> Self
pub fn override_content_disposition(self, v: &str) -> Self
Refer to options::ReadOptions::override_content_disposition for more details.
Sourcepub fn override_cache_control(self, v: &str) -> Self
pub fn override_cache_control(self, v: &str) -> Self
Refer to options::ReadOptions::override_cache_control for more details.
Sourcepub fn override_content_type(self, v: &str) -> Self
pub fn override_content_type(self, v: &str) -> Self
Refer to options::ReadOptions::override_content_type for more details.
Sourcepub fn if_match(self, v: &str) -> Self
pub fn if_match(self, v: &str) -> Self
Make the presigned request read only when the file has this exact ETag.
Refer to options::ReadOptions::if_match for the full contract.
Sourcepub fn if_none_match(self, v: &str) -> Self
pub fn if_none_match(self, v: &str) -> Self
Make the presigned request read only when the file does not have this ETag.
Refer to options::ReadOptions::if_none_match for the full contract.
Source§impl<F: Future<Output = Result<PresignedRequest>>> OperatorFuture<(WriteOptions, Duration), PresignedRequest, F>
impl<F: Future<Output = Result<PresignedRequest>>> OperatorFuture<(WriteOptions, Duration), PresignedRequest, F>
Sourcepub fn content_type(self, v: &str) -> Self
pub fn content_type(self, v: &str) -> Self
Refer to options::WriteOptions::content_type for more details.
Sourcepub fn content_disposition(self, v: &str) -> Self
pub fn content_disposition(self, v: &str) -> Self
Refer to options::WriteOptions::content_disposition for more details.
Sourcepub fn content_encoding(self, v: &str) -> Self
pub fn content_encoding(self, v: &str) -> Self
Refer to options::WriteOptions::content_encoding for more details.
Sourcepub fn cache_control(self, v: &str) -> Self
pub fn cache_control(self, v: &str) -> Self
Refer to options::WriteOptions::cache_control for more details.
Source§impl<F: Future<Output = Result<Buffer>>> OperatorFuture<ReadOptions, Buffer, F>
impl<F: Future<Output = Result<Buffer>>> OperatorFuture<ReadOptions, Buffer, F>
Sourcepub fn range(self, range: impl Into<BytesRange>) -> Self
pub fn range(self, range: impl Into<BytesRange>) -> Self
Set range for this read request.
If we have a file with size n.
..means read bytes in range[0, n)of file.0..1024and..1024means read bytes in range[0, 1024)of file1024..means read bytes in range[1024, n)of fileBytesRange::suffix(1024)means read the lastmin(1024, n)bytes of file
let bs = op.read_with("path/to/file").range(0..1024).await?;Sourcepub fn content_length_hint(self, v: u64) -> Self
pub fn content_length_hint(self, v: u64) -> Self
Sets known content length as a hint for this read request.
Refer to options::ReadOptions::content_length_hint for more details.
Sourcepub fn concurrent(self, concurrent: usize) -> Self
pub fn concurrent(self, concurrent: usize) -> Self
Set concurrent for the reader.
OpenDAL by default to write file without concurrent. This is not efficient for cases when users
read large chunks of data. By setting concurrent, opendal will read files concurrently
on support storage services.
By setting concurrent, opendal will fetch chunks concurrently with
the given chunk size.
let r = op.read_with("path/to/file").concurrent(8).await?;Sourcepub fn chunk(self, chunk_size: usize) -> Self
pub fn chunk(self, chunk_size: usize) -> Self
OpenDAL will use services’ preferred chunk size by default. Users can set chunk based on their own needs.
This following example will make opendal read data in 4MiB chunks:
let r = op.read_with("path/to/file").chunk(4 * 1024 * 1024).await?;Sourcepub fn version(self, v: &str) -> Self
pub fn version(self, v: &str) -> Self
Read the given version of the file instead of the current one.
Refer to options::ReadOptions::version for the full contract.
let mut bs = op.read_with("path/to/file").version(version).await?;Sourcepub fn if_match(self, v: &str) -> Self
pub fn if_match(self, v: &str) -> Self
Read only when the file has this exact ETag.
Refer to options::ReadOptions::if_match for the full contract.
use opendal_core::Operator;
let mut metadata = op.read_with("path/to/file").if_match(etag).await?;Sourcepub fn if_none_match(self, v: &str) -> Self
pub fn if_none_match(self, v: &str) -> Self
Read only when the file does not have this ETag.
Refer to options::ReadOptions::if_none_match for the full contract.
use opendal_core::Operator;
let mut metadata = op.read_with("path/to/file").if_none_match(etag).await?;Sourcepub fn if_version_match(self, v: &str) -> Self
pub fn if_version_match(self, v: &str) -> Self
Read only when the file has this exact version.
Refer to options::ReadOptions::if_version_match for the full contract.
Sourcepub fn if_version_not_match(self, v: &str) -> Self
pub fn if_version_not_match(self, v: &str) -> Self
Read only when the file does not have this version.
Refer to options::ReadOptions::if_version_not_match for the full contract.
Sourcepub fn if_modified_since(self, v: impl Into<Timestamp>) -> Self
pub fn if_modified_since(self, v: impl Into<Timestamp>) -> Self
Read only when the file was modified after this timestamp.
Refer to options::ReadOptions::if_modified_since for the full contract.
use jiff::Timestamp;
use opendal_core::Operator;
let mut metadata = op.read_with("path/to/file").if_modified_since(time).await?;Sourcepub fn if_unmodified_since(self, v: impl Into<Timestamp>) -> Self
pub fn if_unmodified_since(self, v: impl Into<Timestamp>) -> Self
Read only when the file was not modified after this timestamp.
Refer to options::ReadOptions::if_unmodified_since for the full contract.
use jiff::Timestamp;
use opendal_core::Operator;
let mut metadata = op
.read_with("path/to/file")
.if_unmodified_since(time)
.await?;Source§impl<F: Future<Output = Result<Reader>>> OperatorFuture<ReaderOptions, Reader, F>
impl<F: Future<Output = Result<Reader>>> OperatorFuture<ReaderOptions, Reader, F>
Sourcepub fn version(self, v: &str) -> Self
pub fn version(self, v: &str) -> Self
Read the given version of the file instead of the current one.
Refer to options::ReaderOptions::version for the full contract.
let mut r = op.reader_with("path/to/file").version(version).await?;Sourcepub fn concurrent(self, concurrent: usize) -> Self
pub fn concurrent(self, concurrent: usize) -> Self
Set concurrent for the reader.
OpenDAL by default to write file without concurrent. This is not efficient for cases when users
read large chunks of data. By setting concurrent, opendal will reading files concurrently
on support storage services.
By setting concurrent, opendal will fetch chunks concurrently with
the give chunk size.
let r = op.reader_with("path/to/file").concurrent(8).await?;Sourcepub fn chunk(self, chunk_size: usize) -> Self
pub fn chunk(self, chunk_size: usize) -> Self
OpenDAL will use services’ preferred chunk size by default. Users can set chunk based on their own needs.
This following example will make opendal read data in 4MiB chunks:
let r = op
.reader_with("path/to/file")
.chunk(4 * 1024 * 1024)
.await?;Sourcepub fn content_length_hint(self, v: u64) -> Self
pub fn content_length_hint(self, v: u64) -> Self
Sets known content length as a hint for this reader.
Refer to options::ReaderOptions::content_length_hint for more details.
Sourcepub fn gap(self, gap_size: usize) -> Self
pub fn gap(self, gap_size: usize) -> Self
Controls the optimization strategy for range reads in Reader::fetch.
When performing range reads, if the gap between two requested ranges is less than or
equal to the configured gap size, OpenDAL will merge these ranges into a single read request
and discard the unrequested data in between. This helps reduce the number of API calls
to remote storage services.
This optimization is particularly useful when performing multiple small range reads that are close to each other, as it reduces the overhead of multiple network requests at the cost of transferring some additional data.
Set to 0 to disable merging ranges separated by a gap. Overlapping or adjacent ranges
are still merged.
In this example, if two requested ranges are separated by no more than 1 MiB, they will be merged into a single read request:
let r = op
.reader_with("path/to/file")
.chunk(4 * 1024 * 1024)
.gap(1024 * 1024) // 1MiB gap
.await?;Sourcepub fn if_match(self, etag: &str) -> Self
pub fn if_match(self, etag: &str) -> Self
Read only when the file has this exact ETag.
Refer to options::ReaderOptions::if_match for the full contract.
use opendal_core::Operator;
let mut r = op.reader_with("path/to/file").if_match(etag).await?;Sourcepub fn if_none_match(self, etag: &str) -> Self
pub fn if_none_match(self, etag: &str) -> Self
Read only when the file does not have this ETag.
Refer to options::ReaderOptions::if_none_match for the full contract.
use opendal_core::Operator;
let mut r = op.reader_with("path/to/file").if_none_match(etag).await?;Sourcepub fn if_version_match(self, version: &str) -> Self
pub fn if_version_match(self, version: &str) -> Self
Read only when the file has this exact version.
Refer to options::ReaderOptions::if_version_match for the full contract.
Sourcepub fn if_version_not_match(self, version: &str) -> Self
pub fn if_version_not_match(self, version: &str) -> Self
Read only when the file does not have this version.
Refer to options::ReaderOptions::if_version_not_match for the full contract.
Sourcepub fn if_modified_since(self, v: impl Into<Timestamp>) -> Self
pub fn if_modified_since(self, v: impl Into<Timestamp>) -> Self
Read only when the file was modified after this timestamp.
Refer to options::ReaderOptions::if_modified_since for the full contract.
use jiff::Timestamp;
use opendal_core::Operator;
let mut r = op
.reader_with("path/to/file")
.if_modified_since(time)
.await?;Sourcepub fn if_unmodified_since(self, v: impl Into<Timestamp>) -> Self
pub fn if_unmodified_since(self, v: impl Into<Timestamp>) -> Self
Read only when the file was not modified after this timestamp.
Refer to options::ReaderOptions::if_unmodified_since for the full contract.
use jiff::Timestamp;
use opendal_core::Operator;
let mut r = op
.reader_with("path/to/file")
.if_unmodified_since(time)
.await?;Source§impl<F: Future<Output = Result<Metadata>>> OperatorFuture<(WriteOptions, Buffer), Metadata, F>
impl<F: Future<Output = Result<Metadata>>> OperatorFuture<(WriteOptions, Buffer), Metadata, F>
Sourcepub fn append(self, v: bool) -> Self
pub fn append(self, v: bool) -> Self
Sets append mode for this write request.
Refer to options::WriteOptions::append for more details.
§Example
use bytes::Bytes;
let _ = op
.write_with("path/to/file", vec![0; 4096])
.append(true)
.await?;Sourcepub fn chunk(self, v: usize) -> Self
pub fn chunk(self, v: usize) -> Self
Sets chunk size for buffered writes.
Refer to options::WriteOptions::chunk for more details.
§Example
use bytes::Bytes;
// Set 8MiB chunk size - data will be sent in one API call at close
let _ = op
.write_with("path/to/file", vec![0; 4096])
.chunk(8 * 1024 * 1024)
.await?;Sourcepub fn concurrent(self, v: usize) -> Self
pub fn concurrent(self, v: usize) -> Self
Sets concurrent write operations for this writer.
Refer to options::WriteOptions::concurrent for more details.
§Example
use bytes::Bytes;
// Enable concurrent writes with 8 parallel operations at 128B chunk.
let _ = op
.write_with("path/to/file", vec![0; 4096])
.chunk(128)
.concurrent(8)
.await?;Sourcepub fn cache_control(self, v: &str) -> Self
pub fn cache_control(self, v: &str) -> Self
Sets Cache-Control header for this write operation.
Refer to options::WriteOptions::cache_control for more details.
§Example
use bytes::Bytes;
// Cache content for 7 days (604800 seconds)
let _ = op
.write_with("path/to/file", vec![0; 4096])
.cache_control("max-age=604800")
.await?;Sourcepub fn content_type(self, v: &str) -> Self
pub fn content_type(self, v: &str) -> Self
Sets Content-Type header for this write operation.
Refer to options::WriteOptions::content_type for more details.
§Example
use bytes::Bytes;
// Set content type for plain text file
let _ = op
.write_with("path/to/file", vec![0; 4096])
.content_type("text/plain")
.await?;Sourcepub fn content_disposition(self, v: &str) -> Self
pub fn content_disposition(self, v: &str) -> Self
Sets Content-Disposition header for this write request.
Refer to options::WriteOptions::content_disposition for more details.
§Example
use bytes::Bytes;
let _ = op
.write_with("path/to/file", vec![0; 4096])
.content_disposition("attachment; filename=\"filename.jpg\"")
.await?;Sourcepub fn content_encoding(self, v: &str) -> Self
pub fn content_encoding(self, v: &str) -> Self
Sets Content-Encoding header for this write request.
Refer to options::WriteOptions::content_encoding for more details.
§Example
use bytes::Bytes;
let _ = op
.write_with("path/to/file", vec![0; 4096])
.content_encoding("gzip")
.await?;Sourcepub fn if_match(self, s: &str) -> Self
pub fn if_match(self, s: &str) -> Self
Write only when the file at the write path has this exact ETag.
Refer to options::WriteOptions::if_match for the full contract.
§Example
use bytes::Bytes;
let _ = op
.write_with("path/to/file", vec![0; 4096])
.if_match("\"686897696a7c876b7e\"")
.await?;Sourcepub fn if_none_match(self, s: &str) -> Self
pub fn if_none_match(self, s: &str) -> Self
Write only when the file at the write path does not have this ETag.
Refer to options::WriteOptions::if_none_match for the full contract.
§Example
use bytes::Bytes;
let _ = op
.write_with("path/to/file", vec![0; 4096])
.if_none_match("\"686897696a7c876b7e\"")
.await?;Sourcepub fn if_version_match(self, version: &str) -> Self
pub fn if_version_match(self, version: &str) -> Self
Write only when the file at the write path has this exact version.
Refer to options::WriteOptions::if_version_match for the full contract.
Sourcepub fn if_version_not_match(self, version: &str) -> Self
pub fn if_version_not_match(self, version: &str) -> Self
Write only when the file at the write path does not have this version.
Refer to options::WriteOptions::if_version_not_match for the full contract.
Sourcepub fn if_not_changed(self, metadata: &Metadata) -> Self
pub fn if_not_changed(self, metadata: &Metadata) -> Self
Write only when the file still has the identity recorded in metadata.
Refer to options::WriteOptions::if_not_changed for the full contract.
Sourcepub fn if_not_exists(self, b: bool) -> Self
pub fn if_not_exists(self, b: bool) -> Self
Write only when no file exists at the write path.
Refer to options::WriteOptions::if_not_exists for the full contract.
§Example
use bytes::Bytes;
let _ = op
.write_with("path/to/file", vec![0; 4096])
.if_not_exists(true)
.await?;Sourcepub fn user_metadata(
self,
data: impl IntoIterator<Item = (String, String)>,
) -> Self
pub fn user_metadata( self, data: impl IntoIterator<Item = (String, String)>, ) -> Self
Sets user metadata for this write request.
Refer to options::WriteOptions::user_metadata for more details.
§Example
use bytes::Bytes;
let _ = op
.write_with("path/to/file", vec![0; 4096])
.user_metadata([
("language".to_string(), "rust".to_string()),
("author".to_string(), "OpenDAL".to_string()),
])
.await?;Source§impl<F: Future<Output = Result<Writer>>> OperatorFuture<WriteOptions, Writer, F>
impl<F: Future<Output = Result<Writer>>> OperatorFuture<WriteOptions, Writer, F>
Sourcepub fn append(self, v: bool) -> Self
pub fn append(self, v: bool) -> Self
Sets append mode for this write request.
Refer to options::WriteOptions::append for more details.
§Example
use bytes::Bytes;
let mut w = op.writer_with("path/to/file").append(true).await?;
w.write(vec![0; 4096]).await?;
w.write(vec![1; 4096]).await?;
w.close().await?;Sourcepub fn chunk(self, v: usize) -> Self
pub fn chunk(self, v: usize) -> Self
Sets chunk size for buffered writes.
Refer to options::WriteOptions::chunk for more details.
§Example
use bytes::Bytes;
// Set 8MiB chunk size - data will be sent in one API call at close
let mut w = op
.writer_with("path/to/file")
.chunk(8 * 1024 * 1024)
.await?;
w.write(vec![0; 4096]).await?;
w.write(vec![1; 4096]).await?;
w.close().await?;Sourcepub fn concurrent(self, v: usize) -> Self
pub fn concurrent(self, v: usize) -> Self
Sets concurrent write operations for this writer.
Refer to options::WriteOptions::concurrent for more details.
§Example
use bytes::Bytes;
// Enable concurrent writes with 8 parallel operations
let mut w = op.writer_with("path/to/file").concurrent(8).await?;
// First write starts immediately
w.write(vec![0; 4096]).await?;
// Second write runs concurrently with first
w.write(vec![1; 4096]).await?;
// Ensures all writes complete successfully and in order
w.close().await?;Sourcepub fn cache_control(self, v: &str) -> Self
pub fn cache_control(self, v: &str) -> Self
Sets Cache-Control header for this write operation.
Refer to options::WriteOptions::cache_control for more details.
§Example
use bytes::Bytes;
// Cache content for 7 days (604800 seconds)
let mut w = op
.writer_with("path/to/file")
.cache_control("max-age=604800")
.await?;
w.write(vec![0; 4096]).await?;
w.write(vec![1; 4096]).await?;
w.close().await?;Sourcepub fn content_type(self, v: &str) -> Self
pub fn content_type(self, v: &str) -> Self
Sets Content-Type header for this write operation.
Refer to options::WriteOptions::content_type for more details.
§Example
use bytes::Bytes;
// Set content type for plain text file
let mut w = op
.writer_with("path/to/file")
.content_type("text/plain")
.await?;
w.write(vec![0; 4096]).await?;
w.write(vec![1; 4096]).await?;
w.close().await?;Sourcepub fn content_disposition(self, v: &str) -> Self
pub fn content_disposition(self, v: &str) -> Self
Sets Content-Disposition header for this write request.
Refer to options::WriteOptions::content_disposition for more details.
§Example
use bytes::Bytes;
let mut w = op
.writer_with("path/to/file")
.content_disposition("attachment; filename=\"filename.jpg\"")
.await?;
w.write(vec![0; 4096]).await?;
w.write(vec![1; 4096]).await?;
w.close().await?;Sourcepub fn content_encoding(self, v: &str) -> Self
pub fn content_encoding(self, v: &str) -> Self
Sets Content-Encoding header for this write request.
Refer to options::WriteOptions::content_encoding for more details.
§Example
use bytes::Bytes;
let mut w = op
.writer_with("path/to/file")
.content_encoding("gzip")
.await?;
w.write(vec![0; 4096]).await?;
w.write(vec![1; 4096]).await?;
w.close().await?;Sourcepub fn if_match(self, s: &str) -> Self
pub fn if_match(self, s: &str) -> Self
Write only when the file at the write path has this exact ETag.
Refer to options::WriteOptions::if_match for the full contract.
Depending on the service, the conditional error may surface when
creating the writer, while writing, or when closing it.
§Example
use bytes::Bytes;
let mut w = op
.writer_with("path/to/file")
.if_match("\"686897696a7c876b7e\"")
.await?;
w.write(vec![0; 4096]).await?;
w.write(vec![1; 4096]).await?;
w.close().await?;Sourcepub fn if_none_match(self, s: &str) -> Self
pub fn if_none_match(self, s: &str) -> Self
Write only when the file at the write path does not have this ETag.
Refer to options::WriteOptions::if_none_match for the full contract.
§Example
use bytes::Bytes;
let mut w = op
.writer_with("path/to/file")
.if_none_match("\"686897696a7c876b7e\"")
.await?;
w.write(vec![0; 4096]).await?;
w.write(vec![1; 4096]).await?;
w.close().await?;Sourcepub fn if_version_match(self, version: &str) -> Self
pub fn if_version_match(self, version: &str) -> Self
Write only when the file at the write path has this exact version.
Refer to options::WriteOptions::if_version_match for the full contract.
Sourcepub fn if_version_not_match(self, version: &str) -> Self
pub fn if_version_not_match(self, version: &str) -> Self
Write only when the file at the write path does not have this version.
Refer to options::WriteOptions::if_version_not_match for the full contract.
Sourcepub fn if_not_changed(self, metadata: &Metadata) -> Self
pub fn if_not_changed(self, metadata: &Metadata) -> Self
Write only when the file still has the identity recorded in metadata.
Refer to options::WriteOptions::if_not_changed for the full contract.
Sourcepub fn if_not_exists(self, b: bool) -> Self
pub fn if_not_exists(self, b: bool) -> Self
Write only when no file exists at the write path.
Refer to options::WriteOptions::if_not_exists for the full contract.
§Example
use bytes::Bytes;
let mut w = op.writer_with("path/to/file").if_not_exists(true).await?;
w.write(vec![0; 4096]).await?;
w.write(vec![1; 4096]).await?;
w.close().await?;Sourcepub fn user_metadata(
self,
data: impl IntoIterator<Item = (String, String)>,
) -> Self
pub fn user_metadata( self, data: impl IntoIterator<Item = (String, String)>, ) -> Self
Sets user metadata for this write request.
Refer to options::WriteOptions::user_metadata for more details.
§Example
use bytes::Bytes;
let mut w = op
.writer_with("path/to/file")
.user_metadata([
("content-type".to_string(), "text/plain".to_string()),
("author".to_string(), "OpenDAL".to_string()),
])
.await?;
w.write(vec![0; 4096]).await?;
w.close().await?;Source§impl<F: Future<Output = Result<()>>> OperatorFuture<DeleteOptions, (), F>
impl<F: Future<Output = Result<()>>> OperatorFuture<DeleteOptions, (), F>
Sourcepub fn version(self, v: &str) -> Self
pub fn version(self, v: &str) -> Self
Delete the given version of the file instead of the current one.
Refer to options::DeleteOptions::version for the full contract.
Sourcepub fn recursive(self, recursive: bool) -> Self
pub fn recursive(self, recursive: bool) -> Self
Enable recursive deletion.
Refer to options::DeleteOptions::recursive for the full contract.
Sourcepub fn if_match(self, etag: &str) -> Self
pub fn if_match(self, etag: &str) -> Self
Delete only when the file at the delete path has this exact ETag.
Refer to options::DeleteOptions::if_match for the full contract.
Sourcepub fn if_none_match(self, etag: &str) -> Self
pub fn if_none_match(self, etag: &str) -> Self
Delete only when the file at the delete path does not have this ETag.
Refer to options::DeleteOptions::if_none_match for the full contract.
Sourcepub fn if_version_match(self, version: &str) -> Self
pub fn if_version_match(self, version: &str) -> Self
Delete only when the file at the delete path has this exact version.
Refer to options::DeleteOptions::if_version_match for the full contract.
Sourcepub fn if_version_not_match(self, version: &str) -> Self
pub fn if_version_not_match(self, version: &str) -> Self
Delete only when the file at the delete path does not have this version.
Refer to options::DeleteOptions::if_version_not_match for the full contract.
Sourcepub fn if_not_changed(self, metadata: &Metadata) -> Self
pub fn if_not_changed(self, metadata: &Metadata) -> Self
Delete only when the file still has the identity recorded in metadata.
Refer to options::DeleteOptions::if_not_changed for the full contract.
Source§impl<F: Future<Output = Result<Vec<Entry>>>> OperatorFuture<ListOptions, Vec<Entry>, F>
impl<F: Future<Output = Result<Vec<Entry>>>> OperatorFuture<ListOptions, Vec<Entry>, F>
Sourcepub fn limit(self, v: usize) -> Self
pub fn limit(self, v: usize) -> Self
The limit passed to underlying service to specify the max results that could return per-request.
Users could use this to control the memory usage of list operation.
Sourcepub fn start_after(self, v: &str) -> Self
pub fn start_after(self, v: &str) -> Self
The start_after passes to underlying service to specify the specified key to start listing from.
Sourcepub fn recursive(self, v: bool) -> Self
pub fn recursive(self, v: bool) -> Self
The recursive is used to control whether the list operation is recursive.
- If
false, list operation will only list the entries under the given path. - If
true, list operation will list all entries that starts with given path.
Default to false.
Sourcepub fn versions(self, v: bool) -> Self
pub fn versions(self, v: bool) -> Self
Controls whether the list operation should return file versions.
This function allows you to specify if the list operation, when executed, should include
information about different versions of files, if versioning is supported and enabled.
If true, subsequent list operations will include version information for each file.
If false, version information will be omitted from the list results.
Default to false
Sourcepub fn deleted(self, v: bool) -> Self
pub fn deleted(self, v: bool) -> Self
Controls whether the list operation should include deleted files (or versions).
This function allows you to specify if the list operation, when executed, should include
entries for files or versions that have been marked as deleted. This is particularly relevant
in object storage systems that support soft deletion or versioning.
If true, subsequent list operations will include deleted files or versions.
If false, deleted files or versions will be excluded from the list results.
Source§impl<F: Future<Output = Result<Lister>>> OperatorFuture<ListOptions, Lister, F>
impl<F: Future<Output = Result<Lister>>> OperatorFuture<ListOptions, Lister, F>
Sourcepub fn limit(self, v: usize) -> Self
pub fn limit(self, v: usize) -> Self
The limit passed to underlying service to specify the max results that could return per-request.
Users could use this to control the memory usage of list operation.
Sourcepub fn start_after(self, v: &str) -> Self
pub fn start_after(self, v: &str) -> Self
The start_after passes to underlying service to specify the specified key to start listing from.
Sourcepub fn recursive(self, v: bool) -> Self
pub fn recursive(self, v: bool) -> Self
The recursive is used to control whether the list operation is recursive.
- If
false, list operation will only list the entries under the given path. - If
true, list operation will list all entries that starts with given path.
Default to false.
Sourcepub fn versions(self, v: bool) -> Self
pub fn versions(self, v: bool) -> Self
Controls whether the list operation should return file versions.
This function allows you to specify if the list operation, when executed, should include
information about different versions of files, if versioning is supported and enabled.
If true, subsequent list operations will include version information for each file.
If false, version information will be omitted from the list results.
Default to false
Sourcepub fn deleted(self, v: bool) -> Self
pub fn deleted(self, v: bool) -> Self
Controls whether the list operation should include deleted files (or versions).
This function allows you to specify if the list operation, when executed, should include
entries for files or versions that have been marked as deleted. This is particularly relevant
in object storage systems that support soft deletion or versioning.
If true, subsequent list operations will include deleted files or versions.
If false, deleted files or versions will be excluded from the list results.
Source§impl<F: Future<Output = Result<Metadata>>> OperatorFuture<(ComposeOptions, Vec<(String, ComposeSourceOptions)>), Metadata, F>
impl<F: Future<Output = Result<Metadata>>> OperatorFuture<(ComposeOptions, Vec<(String, ComposeSourceOptions)>), Metadata, F>
Sourcepub fn cache_control(self, value: &str) -> Self
pub fn cache_control(self, value: &str) -> Self
Set destination Cache-Control metadata.
Sourcepub fn content_type(self, value: &str) -> Self
pub fn content_type(self, value: &str) -> Self
Set destination Content-Type metadata.
Sourcepub fn content_disposition(self, value: &str) -> Self
pub fn content_disposition(self, value: &str) -> Self
Set destination Content-Disposition metadata.
Sourcepub fn content_encoding(self, value: &str) -> Self
pub fn content_encoding(self, value: &str) -> Self
Set destination Content-Encoding metadata.
Sourcepub fn user_metadata(self, value: HashMap<String, String>) -> Self
pub fn user_metadata(self, value: HashMap<String, String>) -> Self
Set destination user metadata.
Sourcepub fn if_not_exists(self, value: bool) -> Self
pub fn if_not_exists(self, value: bool) -> Self
Require a missing destination object.
Sourcepub fn if_none_match(self, value: &str) -> Self
pub fn if_none_match(self, value: &str) -> Self
Require a different destination ETag.
Sourcepub fn if_version_match(self, value: &str) -> Self
pub fn if_version_match(self, value: &str) -> Self
Require this destination version.
Sourcepub fn if_version_not_match(self, value: &str) -> Self
pub fn if_version_not_match(self, value: &str) -> Self
Require a different destination version.
Sourcepub fn if_not_changed(self, metadata: &Metadata) -> Self
pub fn if_not_changed(self, metadata: &Metadata) -> Self
Require the destination to retain the identity in metadata.
Sourcepub fn concurrent(self, value: usize) -> Self
pub fn concurrent(self, value: usize) -> Self
Set the maximum number of independent backend tasks.
Source§impl<F: Future<Output = Result<Composer>>> OperatorFuture<ComposeOptions, Composer, F>
impl<F: Future<Output = Result<Composer>>> OperatorFuture<ComposeOptions, Composer, F>
Sourcepub fn cache_control(self, value: &str) -> Self
pub fn cache_control(self, value: &str) -> Self
Set destination Cache-Control metadata.
Sourcepub fn content_type(self, value: &str) -> Self
pub fn content_type(self, value: &str) -> Self
Set destination Content-Type metadata.
Sourcepub fn content_disposition(self, value: &str) -> Self
pub fn content_disposition(self, value: &str) -> Self
Set destination Content-Disposition metadata.
Sourcepub fn content_encoding(self, value: &str) -> Self
pub fn content_encoding(self, value: &str) -> Self
Set destination Content-Encoding metadata.
Sourcepub fn user_metadata(self, value: HashMap<String, String>) -> Self
pub fn user_metadata(self, value: HashMap<String, String>) -> Self
Set destination user metadata.
Sourcepub fn if_not_exists(self, value: bool) -> Self
pub fn if_not_exists(self, value: bool) -> Self
Require a missing destination object.
Sourcepub fn if_none_match(self, value: &str) -> Self
pub fn if_none_match(self, value: &str) -> Self
Require a different destination ETag.
Sourcepub fn if_version_match(self, value: &str) -> Self
pub fn if_version_match(self, value: &str) -> Self
Require this destination version.
Sourcepub fn if_version_not_match(self, value: &str) -> Self
pub fn if_version_not_match(self, value: &str) -> Self
Require a different destination version.
Sourcepub fn if_not_changed(self, metadata: &Metadata) -> Self
pub fn if_not_changed(self, metadata: &Metadata) -> Self
Require the destination to retain the identity in metadata.
Sourcepub fn concurrent(self, value: usize) -> Self
pub fn concurrent(self, value: usize) -> Self
Set the maximum number of independent backend tasks.
Source§impl<F: Future<Output = Result<Metadata>>> OperatorFuture<(CopyOptions, String), Metadata, F>
impl<F: Future<Output = Result<Metadata>>> OperatorFuture<(CopyOptions, String), Metadata, F>
Sourcepub fn if_not_exists(self, v: bool) -> Self
pub fn if_not_exists(self, v: bool) -> Self
Copy only when no file exists at the destination path.
Refer to options::CopyOptions::if_not_exists for the full contract.
§Example
let _ = op
.copy_with("source/path", "target/path")
.if_not_exists(true)
.await?;Sourcepub fn if_match(self, etag: &str) -> Self
pub fn if_match(self, etag: &str) -> Self
Copy only when the destination file has this exact ETag.
Refer to options::CopyOptions::if_match for the full contract.
Sourcepub fn if_none_match(self, etag: &str) -> Self
pub fn if_none_match(self, etag: &str) -> Self
Copy only when the destination file does not have this ETag.
Refer to options::CopyOptions::if_none_match for the full contract.
Sourcepub fn if_version_match(self, version: &str) -> Self
pub fn if_version_match(self, version: &str) -> Self
Copy only when the destination file has this exact version.
Refer to options::CopyOptions::if_version_match for the full contract.
Sourcepub fn if_version_not_match(self, version: &str) -> Self
pub fn if_version_not_match(self, version: &str) -> Self
Copy only when the destination file does not have this version.
Refer to options::CopyOptions::if_version_not_match for the full contract.
Sourcepub fn if_not_changed(self, metadata: &Metadata) -> Self
pub fn if_not_changed(self, metadata: &Metadata) -> Self
Copy only when the destination file still has the identity recorded in metadata.
Refer to options::CopyOptions::if_not_changed for the full contract.
Sourcepub fn source_version(self, version: impl Into<String>) -> Self
pub fn source_version(self, version: impl Into<String>) -> Self
Copy from this source file version instead of the current one.
Refer to options::CopyOptions::source_version for the full contract.
Sourcepub fn concurrent(self, v: usize) -> Self
pub fn concurrent(self, v: usize) -> Self
Sets concurrent copy operations for this copy.
Refer to options::CopyOptions::concurrent for more details.
Sourcepub fn chunk(self, v: usize) -> Self
pub fn chunk(self, v: usize) -> Self
Sets chunk size for segmented copy operations.
Refer to options::CopyOptions::chunk for more details.
Sourcepub fn source_content_length_hint(self, v: u64) -> Self
pub fn source_content_length_hint(self, v: u64) -> Self
Sets known source content length as a hint for this copy request.
Refer to options::CopyOptions::source_content_length_hint for more details.
Source§impl<F: Future<Output = Result<Copier>>> OperatorFuture<(CopyOptions, String), Copier, F>
impl<F: Future<Output = Result<Copier>>> OperatorFuture<(CopyOptions, String), Copier, F>
Sourcepub fn if_not_exists(self, v: bool) -> Self
pub fn if_not_exists(self, v: bool) -> Self
Copy only when no file exists at the destination path.
Refer to options::CopyOptions::if_not_exists for the full contract.
Sourcepub fn if_match(self, etag: &str) -> Self
pub fn if_match(self, etag: &str) -> Self
Copy only when the destination file has this exact ETag.
Refer to options::CopyOptions::if_match for the full contract.
Sourcepub fn if_none_match(self, etag: &str) -> Self
pub fn if_none_match(self, etag: &str) -> Self
Copy only when the destination file does not have this ETag.
Refer to options::CopyOptions::if_none_match for the full contract.
Sourcepub fn if_version_match(self, version: &str) -> Self
pub fn if_version_match(self, version: &str) -> Self
Copy only when the destination file has this exact version.
Refer to options::CopyOptions::if_version_match for the full contract.
Sourcepub fn if_version_not_match(self, version: &str) -> Self
pub fn if_version_not_match(self, version: &str) -> Self
Copy only when the destination file does not have this version.
Refer to options::CopyOptions::if_version_not_match for the full contract.
Sourcepub fn if_not_changed(self, metadata: &Metadata) -> Self
pub fn if_not_changed(self, metadata: &Metadata) -> Self
Copy only when the destination file still has the identity recorded in metadata.
Refer to options::CopyOptions::if_not_changed for the full contract.
Sourcepub fn source_version(self, version: impl Into<String>) -> Self
pub fn source_version(self, version: impl Into<String>) -> Self
Copy from this source file version instead of the current one.
Refer to options::CopyOptions::source_version for the full contract.
Sourcepub fn source_content_length_hint(self, v: u64) -> Self
pub fn source_content_length_hint(self, v: u64) -> Self
Sets known source content length as a hint for this copier.
Refer to options::CopyOptions::source_content_length_hint for more details.
Sourcepub fn concurrent(self, v: usize) -> Self
pub fn concurrent(self, v: usize) -> Self
Sets concurrent copy operations for this copier.
Refer to options::CopyOptions::concurrent for more details.
Sourcepub fn chunk(self, v: usize) -> Self
pub fn chunk(self, v: usize) -> Self
Sets chunk size for segmented copy operations.
Refer to options::CopyOptions::chunk for more details.
Source§impl<F: Future<Output = Result<()>>> OperatorFuture<(RenameOptions, String), (), F>
impl<F: Future<Output = Result<()>>> OperatorFuture<(RenameOptions, String), (), F>
Sourcepub fn if_not_exists(self, v: bool) -> Self
pub fn if_not_exists(self, v: bool) -> Self
Rename only when no file exists at the destination path.
Refer to options::RenameOptions::if_not_exists for the full contract.
§Example
use opendal_core::Operator;
use opendal_core::Result;
async fn rename_with_options(op: Operator) -> Result<()> {
op.rename_with("source/path", "target/path")
.if_not_exists(true)
.await?;
Ok(())
}Source§impl<F: Future<Output = Result<()>>> OperatorFuture<RestoreOptions, (), F>
impl<F: Future<Output = Result<()>>> OperatorFuture<RestoreOptions, (), F>
Sourcepub fn version(self, version: impl Into<String>) -> Self
pub fn version(self, version: impl Into<String>) -> Self
Restore this historical version as the current version.
Refer to options::RestoreOptions::version for the full contract.
Sourcepub fn if_not_exists(self, if_not_exists: bool) -> Self
pub fn if_not_exists(self, if_not_exists: bool) -> Self
Restore the selected version only when no file currently exists at the restore path.
Refer to options::RestoreOptions::if_not_exists for the full contract.