diff --git a/server/src/config.rs b/server/src/config.rs index 67739638b6..8376d0417d 100644 --- a/server/src/config.rs +++ b/server/src/config.rs @@ -37,6 +37,8 @@ pub struct Config { // store blobs inline if size is less than this pub inline_threshold: Size, + + pub cache_control: String, } pub mod hulyrs { @@ -65,6 +67,8 @@ pub static CONFIG: LazyLock = LazyLock::new(|| { multipart_threshold = "4MB" inline_threshold = "100KB" + + cache_control = "public, no-cache" "#; let mut builder = diff --git a/server/src/handlers.rs b/server/src/handlers.rs index 3a8c664705..f065b11be2 100644 --- a/server/src/handlers.rs +++ b/server/src/handlers.rs @@ -32,8 +32,6 @@ use crate::{ }; use crate::{merge::MergeStrategy, recovery}; -const CACHE_CONTROL: &str = "public, max-age=0, must-revalidate"; - #[derive(Deserialize, Debug)] pub struct ObjectPath { workspace: Uuid, @@ -384,7 +382,7 @@ pub async fn get(request: HttpRequest) -> HandlerResult { Some(false) => HttpResponse::NotModified() .insert_header((header::ETAG, etag)) .insert_header((header::LAST_MODIFIED, HttpDate::from(date))) - .insert_header((header::CACHE_CONTROL, CACHE_CONTROL)) + .insert_header((header::CACHE_CONTROL, CONFIG.cache_control.clone())) .finish(), _ => { let mut response = HttpResponse::Ok(); @@ -404,7 +402,7 @@ pub async fn get(request: HttpRequest) -> HandlerResult { response.insert_header((header::ETAG, etag)); response.insert_header((header::LAST_MODIFIED, HttpDate::from(date))); - response.insert_header((header::CACHE_CONTROL, CACHE_CONTROL)); + response.insert_header((header::CACHE_CONTROL, CONFIG.cache_control.clone())); response.body(merge::stream(s3, parts).await?) } } @@ -438,7 +436,7 @@ pub async fn head(request: HttpRequest) -> HandlerResult { Some(false) => HttpResponse::NotModified() .insert_header((header::ETAG, etag)) .insert_header((header::LAST_MODIFIED, HttpDate::from(date))) - .insert_header((header::CACHE_CONTROL, CACHE_CONTROL)) + .insert_header((header::CACHE_CONTROL, CONFIG.cache_control.clone())) .finish(), _ => { let mut response = HttpResponse::Ok(); @@ -452,7 +450,7 @@ pub async fn head(request: HttpRequest) -> HandlerResult { response.insert_header((header::ETAG, etag)); response.insert_header((header::LAST_MODIFIED, HttpDate::from(date))); - response.insert_header((header::CACHE_CONTROL, CACHE_CONTROL)); + response.insert_header((header::CACHE_CONTROL, CONFIG.cache_control.clone())); // see https://github.com/actix/examples/blob/master/forms/multipart-s3/src/main.rs#L67-L79 let content_length = merge::content_length(parts);