pub struct S3Sink { /* private fields */ }Expand description
S3/R2 sink for event stream archival
Implementations§
Source§impl S3Sink
impl S3Sink
Sourcepub async fn new(
bucket: String,
prefix: String,
endpoint: Option<String>,
access_key: Option<String>,
secret_key: Option<String>,
) -> Result<Self, S3SinkError>
pub async fn new( bucket: String, prefix: String, endpoint: Option<String>, access_key: Option<String>, secret_key: Option<String>, ) -> Result<Self, S3SinkError>
Create a new S3 sink
Sourcepub async fn from_config(config: S3SinkConfig) -> Result<Self, S3SinkError>
pub async fn from_config(config: S3SinkConfig) -> Result<Self, S3SinkError>
Create S3 sink from configuration
Sourcepub async fn from_env() -> Result<Self, S3SinkError>
pub async fn from_env() -> Result<Self, S3SinkError>
Create S3 sink from environment variables
Sourcepub async fn upload_file(
&self,
local_path: &PathBuf,
session_id: &str,
) -> Result<String, S3SinkError>
pub async fn upload_file( &self, local_path: &PathBuf, session_id: &str, ) -> Result<String, S3SinkError>
Upload a local file to S3/R2
Sourcepub async fn upload_bytes(
&self,
data: &[u8],
s3_key: &str,
_content_type: &str,
) -> Result<String, S3SinkError>
pub async fn upload_bytes( &self, data: &[u8], s3_key: &str, _content_type: &str, ) -> Result<String, S3SinkError>
Upload bytes directly to S3/R2
Sourcepub fn is_configured() -> bool
pub fn is_configured() -> bool
Check if S3 sink is configured
Sourcepub fn bucket_name(&self) -> &str
pub fn bucket_name(&self) -> &str
Get the bucket name
Auto Trait Implementations§
impl Freeze for S3Sink
impl !RefUnwindSafe for S3Sink
impl Send for S3Sink
impl Sync for S3Sink
impl Unpin for S3Sink
impl !UnwindSafe for S3Sink
Blanket Implementations§
Source§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
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
Converts
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>
Converts
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more