diff --git a/services/blob/src/config.rs b/services/blob/src/config.rs --- a/services/blob/src/config.rs +++ b/services/blob/src/config.rs @@ -4,7 +4,8 @@ use tracing::info; use crate::constants::{ - DEFAULT_GRPC_PORT, DEFAULT_HTTP_PORT, LOCALSTACK_URL, SANDBOX_ENV_VAR, + DEFAULT_GRPC_PORT, DEFAULT_HTTP_PORT, DEFAULT_S3_BUCKET_NAME, LOCALSTACK_URL, + S3_BUCKET_ENV_VAR, SANDBOX_ENV_VAR, }; #[derive(Parser)] @@ -25,6 +26,9 @@ /// AWS Localstack service URL, applicable in sandbox mode #[arg(long, default_value_t = LOCALSTACK_URL.to_string())] pub localstack_url: String, + #[arg(env = S3_BUCKET_ENV_VAR)] + #[arg(long, default_value_t = DEFAULT_S3_BUCKET_NAME.to_string())] + pub s3_bucket_name: String, } /// Stores configuration parsed from command-line arguments @@ -43,6 +47,10 @@ "gRPC and HTTP ports cannot be the same: {}", cfg.grpc_port ); + + if cfg.s3_bucket_name != DEFAULT_S3_BUCKET_NAME { + info!("Using custom S3 bucket: {}", &cfg.s3_bucket_name); + } Ok(()) } diff --git a/services/blob/src/constants.rs b/services/blob/src/constants.rs --- a/services/blob/src/constants.rs +++ b/services/blob/src/constants.rs @@ -70,5 +70,6 @@ // S3 constants -pub const BLOB_S3_BUCKET_NAME: &str = "commapp-blob"; +pub const S3_BUCKET_ENV_VAR: &str = "BLOB_S3_BUCKET_NAME"; +pub const DEFAULT_S3_BUCKET_NAME: &str = "commapp-blob"; pub const S3_MULTIPART_UPLOAD_MINIMUM_CHUNK_SIZE: u64 = 5 * 1024 * 1024; diff --git a/services/blob/src/database/old.rs b/services/blob/src/database/old.rs --- a/services/blob/src/database/old.rs +++ b/services/blob/src/database/old.rs @@ -7,12 +7,13 @@ use tracing::error; use crate::{ + config::CONFIG, constants::{ BLOB_REVERSE_INDEX_TABLE_BLOB_HASH_FIELD, BLOB_REVERSE_INDEX_TABLE_HASH_INDEX_NAME, BLOB_REVERSE_INDEX_TABLE_HOLDER_FIELD, BLOB_REVERSE_INDEX_TABLE_NAME, - BLOB_S3_BUCKET_NAME, BLOB_TABLE_BLOB_HASH_FIELD, BLOB_TABLE_CREATED_FIELD, - BLOB_TABLE_NAME, BLOB_TABLE_S3_PATH_FIELD, + BLOB_TABLE_BLOB_HASH_FIELD, BLOB_TABLE_CREATED_FIELD, BLOB_TABLE_NAME, + BLOB_TABLE_S3_PATH_FIELD, }, s3::S3Path, }; @@ -32,7 +33,7 @@ BlobItem { blob_hash: hash_str.clone(), s3_path: S3Path { - bucket_name: BLOB_S3_BUCKET_NAME.to_string(), + bucket_name: CONFIG.s3_bucket_name.clone(), object_name: hash_str, }, created: Utc::now(), diff --git a/services/blob/src/database/types.rs b/services/blob/src/database/types.rs --- a/services/blob/src/database/types.rs +++ b/services/blob/src/database/types.rs @@ -6,10 +6,7 @@ use derive_more::Constructor; use std::collections::HashMap; -use crate::{ - constants::{db::*, BLOB_S3_BUCKET_NAME}, - s3::S3Path, -}; +use crate::{config::CONFIG, constants::db::*, s3::S3Path}; use super::errors::Error as DBError; @@ -58,7 +55,7 @@ BlobItemInput { blob_hash: blob_hash.clone(), s3_path: S3Path { - bucket_name: BLOB_S3_BUCKET_NAME.into(), + bucket_name: CONFIG.s3_bucket_name.clone(), object_name: blob_hash, }, }