pub struct GoogleCloudFileStore {
bucket_name: String,
storage_client: Storage,
control_client: StorageControl,
signer: Signer,
pub cache_files_path: PathBuf,
}Fields§
§bucket_name: String§storage_client: Storage§control_client: StorageControl§signer: Signer§cache_files_path: PathBufImplementations§
Source§impl GoogleCloudFileStore
impl GoogleCloudFileStore
Sourcepub async fn new(bucket_name: String) -> UtilResult<Self>
pub async fn new(bucket_name: String) -> UtilResult<Self>
Creates a Google Cloud file store using ADC-backed SDK clients.
Sourcefn bucket_resource_name(&self) -> String
fn bucket_resource_name(&self) -> String
Converts a raw bucket id into the GCS API resource name format.
Sourcefn build_credentials_and_signer() -> UtilResult<(Option<Credentials>, Signer)>
fn build_credentials_and_signer() -> UtilResult<(Option<Credentials>, Signer)>
Builds Google Cloud credentials while preserving the legacy cloud-storage
crate’s support for JSON credentials supplied directly in an environment variable.
fn credentials_json_from_env() -> UtilResult<Option<Value>>
Trait Implementations§
Source§impl FileStore for GoogleCloudFileStore
impl FileStore for GoogleCloudFileStore
Source§fn upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
file: Vec<u8>,
mime_type: &'life2 str,
) -> Pin<Box<dyn Future<Output = UtilResult<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
file: Vec<u8>,
mime_type: &'life2 str,
) -> Pin<Box<dyn Future<Output = UtilResult<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Upload a file that’s in memory to a path.
Source§fn download<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = UtilResult<Vec<u8>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn download<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = UtilResult<Vec<u8>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Download a file to memory.
Source§fn get_direct_download_url<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = UtilResult<String>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_direct_download_url<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = UtilResult<String>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get a url that can be used to download the file without authentication for a while.
In most cases you probably want to use get_download_url() instead.
Source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = UtilResult<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = UtilResult<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete a file.
Source§fn upload_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
contents: GenericPayload,
mime_type: &'life2 str,
) -> Pin<Box<dyn Future<Output = UtilResult<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn upload_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
contents: GenericPayload,
mime_type: &'life2 str,
) -> Pin<Box<dyn Future<Output = UtilResult<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Upload a file without loading the whole file to memory
Source§fn download_stream<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = UtilResult<Box<dyn Stream<Item = Result<Bytes>>>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn download_stream<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = UtilResult<Box<dyn Stream<Item = Result<Bytes>>>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Download a file without loading the whole file to memory.
Source§fn get_cache_files_folder_path(&self) -> UtilResult<&Path>
fn get_cache_files_folder_path(&self) -> UtilResult<&Path>
This function returns a path to a folder where downloaded files can be cached.
Source§fn get_download_url(
&self,
path: &Path,
app_conf: &ApplicationConfiguration,
) -> String
fn get_download_url( &self, path: &Path, app_conf: &ApplicationConfiguration, ) -> String
Get a url for a file in FileStore that can be used to access the resource.
fn fetch_file_content_or_use_filesystem_cache<'life0, 'life1, 'async_trait>(
&'life0 self,
file_path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = UtilResult<Vec<u8>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Auto Trait Implementations§
impl Freeze for GoogleCloudFileStore
impl !RefUnwindSafe for GoogleCloudFileStore
impl Send for GoogleCloudFileStore
impl Sync for GoogleCloudFileStore
impl Unpin for GoogleCloudFileStore
impl UnsafeUnpin for GoogleCloudFileStore
impl !UnwindSafe for GoogleCloudFileStore
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
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ServiceExt for T
impl<T> ServiceExt for T
§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
§fn decompression(self) -> Decompression<Self>where
Self: Sized,
fn decompression(self) -> Decompression<Self>where
Self: Sized,
Decompress response bodies. Read more
§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
§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