Skip to content

Commit 38f44d5

Browse files
metamejoepio
authored andcommitted
download working
1 parent f938509 commit 38f44d5

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

server/src/handlers/download.rs

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,28 @@ pub fn download_file_handler_partial(
5353
Ok(file.into_response(req))
5454
}
5555

56-
57-
async fn signed_url_redirect_handler(file_id: &str, req: &HttpRequest, appstate: &AppState) -> AtomicServerResult<HttpResponse> {
56+
async fn signed_url_redirect_handler(
57+
file_id: &str,
58+
req: &HttpRequest,
59+
appstate: &AppState,
60+
) -> AtomicServerResult<HttpResponse> {
5861
let mut builder = S3::default();
59-
builder.bucket(appstate.config.opts.s3_bucket.as_ref().unwrap().as_str());
62+
63+
let bucket = appstate
64+
.config
65+
.opts
66+
.s3_bucket
67+
.as_ref()
68+
.ok_or("s3 file found but no s3 bucket")?;
69+
builder.bucket(bucket);
70+
6071
appstate
6172
.config
6273
.opts
6374
.s3_region
6475
.as_ref()
6576
.map(|r| builder.region(&r));
77+
6678
appstate
6779
.config
6880
.opts
@@ -80,6 +92,12 @@ async fn signed_url_redirect_handler(file_id: &str, req: &HttpRequest, appstate:
8092

8193
let op: Operator = Operator::new(builder)?.finish();
8294

83-
let signed_url = op.presign_read(&format!("{}/{}", &path, file_id), Duration::from_secs(3600)).await?.uri().to_string();
84-
Ok(web::Redirect::to(signed_url).respond_to(req).map_into_boxed_body())
95+
let signed_url = op
96+
.presign_read(&format!("{}/{}", &path, file_id), Duration::from_secs(3600))
97+
.await?
98+
.uri()
99+
.to_string();
100+
Ok(web::Redirect::to(signed_url)
101+
.respond_to(req)
102+
.map_into_boxed_body())
85103
}

0 commit comments

Comments
 (0)