mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-03 05:17:02 +08:00
refactor: wrap the encryption and file storage interface client in appstate with Arc as opposed to Box (#4949)
This commit is contained in:
@ -2,7 +2,10 @@
|
||||
//! Module for managing file storage operations with support for multiple storage schemes.
|
||||
//!
|
||||
|
||||
use std::fmt::{Display, Formatter};
|
||||
use std::{
|
||||
fmt::{Display, Formatter},
|
||||
sync::Arc,
|
||||
};
|
||||
|
||||
use common_utils::errors::CustomResult;
|
||||
|
||||
@ -39,11 +42,11 @@ impl FileStorageConfig {
|
||||
}
|
||||
|
||||
/// Retrieves the appropriate file storage client based on the file storage configuration.
|
||||
pub async fn get_file_storage_client(&self) -> Box<dyn FileStorageInterface> {
|
||||
pub async fn get_file_storage_client(&self) -> Arc<dyn FileStorageInterface> {
|
||||
match self {
|
||||
#[cfg(feature = "aws_s3")]
|
||||
Self::AwsS3 { aws_s3 } => Box::new(aws_s3::AwsFileStorageClient::new(aws_s3).await),
|
||||
Self::FileSystem => Box::new(file_system::FileSystem),
|
||||
Self::AwsS3 { aws_s3 } => Arc::new(aws_s3::AwsFileStorageClient::new(aws_s3).await),
|
||||
Self::FileSystem => Arc::new(file_system::FileSystem),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user