Struct aws_smithy_http::byte_stream::FsBuilder
source · pub struct FsBuilder { /* private fields */ }
Expand description
Builder for creating ByteStreams
from a file/path, with full control over advanced options.
Example usage:
use aws_smithy_http::byte_stream::{ByteStream, Length};
use std::path::Path;
struct GetObjectInput {
body: ByteStream
}
async fn bytestream_from_file() -> GetObjectInput {
let bytestream = ByteStream::read_from()
.path("docs/some-large-file.csv")
// Specify the size of the buffer used to read the file (in bytes, default is 4096)
.buffer_size(32_784)
// Specify the length of the file used (skips an additional call to retrieve the size)
.length(Length::UpTo(123_456))
.build()
.await
.expect("valid path");
GetObjectInput { body: bytestream }
}
Implementations§
source§impl FsBuilder
impl FsBuilder
sourcepub fn path(self, path: impl AsRef<Path>) -> Self
pub fn path(self, path: impl AsRef<Path>) -> Self
Sets the path to read from.
NOTE: The resulting ByteStream (after calling build) will be retryable. The returned ByteStream will provide a size hint when used as an HTTP body. If the request fails, the read will begin again by reloading the file handle.
sourcepub fn file(self, file: File) -> Self
pub fn file(self, file: File) -> Self
Sets the file to read from.
NOTE: The resulting ByteStream (after calling build) will not be a retryable ByteStream.
For a ByteStream that can be retried in the case of upstream failures, use FsBuilder::path
.
sourcepub fn length(self, length: Length) -> Self
pub fn length(self, length: Length) -> Self
Specify the length to read (in bytes).
By pre-specifying the length, this API skips an additional call to retrieve the size from file-system metadata.
When used in conjunction with offset
, allows for reading a single “chunk” of a file.
sourcepub fn buffer_size(self, buffer_size: usize) -> Self
pub fn buffer_size(self, buffer_size: usize) -> Self
Specify the size of the buffer used to read the file (in bytes).
Increasing the read buffer capacity to higher values than the default (4096 bytes) can result in a large reduction in CPU usage, at the cost of memory increase.
sourcepub fn offset(self, offset: u64) -> Self
pub fn offset(self, offset: u64) -> Self
Specify the offset to start reading from (in bytes)
When used in conjunction with length
, allows for reading a single “chunk” of a file.
sourcepub async fn build(self) -> Result<ByteStream, Error>
pub async fn build(self) -> Result<ByteStream, Error>
Returns a ByteStream
from this builder.