feat(backend): infer file type from extension using mime_guess
This commit is contained in:
1
backend/Cargo.lock
generated
1
backend/Cargo.lock
generated
@@ -192,6 +192,7 @@ dependencies = [
|
|||||||
"dotenvy",
|
"dotenvy",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"lazy-regex",
|
"lazy-regex",
|
||||||
|
"mime_guess",
|
||||||
"opendal",
|
"opendal",
|
||||||
"rand 0.10.1",
|
"rand 0.10.1",
|
||||||
"serde",
|
"serde",
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ opendal = { version = "0.56.0", features = ["tests", "services-fs"] }
|
|||||||
argon2 = "0.5.3"
|
argon2 = "0.5.3"
|
||||||
rand = "0.10.1"
|
rand = "0.10.1"
|
||||||
futures-util = "0.3.32"
|
futures-util = "0.3.32"
|
||||||
|
mime_guess = "2.0.5"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
axum-test = "20.0.0"
|
axum-test = "20.0.0"
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ impl FileRepository {
|
|||||||
"#,
|
"#,
|
||||||
user_id,
|
user_id,
|
||||||
file_name,
|
file_name,
|
||||||
"TODO-file_type".to_string(),
|
mime_guess::from_path(file_name).first_or_octet_stream().to_string(),
|
||||||
file_size as i64,
|
file_size as i64,
|
||||||
file_storage_key
|
file_storage_key
|
||||||
)
|
)
|
||||||
@@ -328,7 +328,7 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn file_repository() -> Result<FileRepository, LoftError> {
|
async fn file_repository() -> Result<FileRepository, LoftError> {
|
||||||
dotenvy::dotenv().ok();
|
dotenvy::from_filename(".env.test").ok();
|
||||||
let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");
|
let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");
|
||||||
let pool = PgPool::connect(&database_url).await.unwrap();
|
let pool = PgPool::connect(&database_url).await.unwrap();
|
||||||
Ok(FileRepository::new(pool)?)
|
Ok(FileRepository::new(pool)?)
|
||||||
@@ -475,7 +475,7 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn user_repository() -> Result<UserRepository, LoftError> {
|
async fn user_repository() -> Result<UserRepository, LoftError> {
|
||||||
dotenvy::dotenv().ok();
|
dotenvy::from_filename(".env.test").ok();
|
||||||
let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");
|
let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");
|
||||||
let pool = PgPool::connect(&database_url).await.unwrap();
|
let pool = PgPool::connect(&database_url).await.unwrap();
|
||||||
Ok(UserRepository::new(pool)?)
|
Ok(UserRepository::new(pool)?)
|
||||||
|
|||||||
Reference in New Issue
Block a user