tests
This commit is contained in:
@@ -1,8 +1,6 @@
|
||||
use std::collections::HashMap;
|
||||
use std::time::Duration;
|
||||
|
||||
use aws_sdk_s3::presigning::PresigningConfig;
|
||||
use aws_sdk_s3::primitives::ByteStream;
|
||||
use axum::extract::{Json, Multipart, Path, Query, State};
|
||||
use axum::http::StatusCode;
|
||||
use axum::response::IntoResponse;
|
||||
@@ -267,21 +265,11 @@ pub async fn upload_document(
|
||||
}
|
||||
}
|
||||
|
||||
let mut put_request = state
|
||||
.s3
|
||||
.put_object()
|
||||
.bucket(&state.config.s3_bucket)
|
||||
.key(&s3_key)
|
||||
.body(ByteStream::from(file_bytes.clone()));
|
||||
|
||||
if let Some(ref ct) = content_type {
|
||||
put_request = put_request.content_type(ct.clone());
|
||||
}
|
||||
|
||||
put_request
|
||||
.send()
|
||||
state
|
||||
.storage
|
||||
.put_object(&s3_key, file_bytes.clone(), content_type.clone())
|
||||
.await
|
||||
.map_err(|err| AppError::internal(format!("failed to upload to s3: {err}")))?;
|
||||
.map_err(|err| AppError::internal(format!("failed to store document: {err}")))?;
|
||||
|
||||
let metadata_value = if metadata.is_null() {
|
||||
Value::Object(Default::default())
|
||||
@@ -349,22 +337,17 @@ pub async fn download_document(
|
||||
.filter(document_versions::version_number.eq(doc.current_version))
|
||||
.first(&mut conn)?;
|
||||
|
||||
let presign_config = PresigningConfig::builder()
|
||||
.expires_in(Duration::from_secs(PRESIGNED_URL_EXPIRY_SECONDS))
|
||||
.build()
|
||||
.map_err(|err| AppError::internal(format!("failed to build presigning config: {err}")))?;
|
||||
|
||||
let presigned = state
|
||||
.s3
|
||||
.get_object()
|
||||
.bucket(&state.config.s3_bucket)
|
||||
.key(&version.s3_key)
|
||||
.presigned(presign_config)
|
||||
let presigned_url = state
|
||||
.storage
|
||||
.presign_get_object(
|
||||
&version.s3_key,
|
||||
Duration::from_secs(PRESIGNED_URL_EXPIRY_SECONDS),
|
||||
)
|
||||
.await
|
||||
.map_err(|err| AppError::internal(format!("failed to generate download URL: {err}")))?;
|
||||
|
||||
Ok(Json(DocumentDownloadResponse {
|
||||
url: presigned.uri().to_string(),
|
||||
url: presigned_url,
|
||||
expires_in: PRESIGNED_URL_EXPIRY_SECONDS,
|
||||
filename: doc.original_name.clone(),
|
||||
content_type: doc.content_type.clone(),
|
||||
|
||||
Reference in New Issue
Block a user