feat(backend): add opendal storage for file payload and postgres record for metadata, add CORS layer

This commit is contained in:
2026-05-21 00:26:28 +03:00
parent 0aa87d61e5
commit ce835da9a4
7 changed files with 1098 additions and 87 deletions

View File

@@ -4,9 +4,15 @@ mod model;
mod web;
use anyhow::Result;
use axum::{Router, middleware, response::Response};
use axum::{
Router,
extract::DefaultBodyLimit,
http::{HeaderValue, Method, header},
middleware,
response::Response,
};
use tower_cookies::CookieManagerLayer;
use tower_http::{services::ServeDir, trace::TraceLayer};
use tower_http::{cors::CorsLayer, services::ServeDir, trace::TraceLayer};
use tracing::info;
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
@@ -33,8 +39,9 @@ async fn main() -> Result<()> {
let file_repository = FileRepository::new().await?;
let routes_file =
routes_file(file_repository.clone()).route_layer(middleware::from_fn(mw_require_auth));
let routes_file = routes_file(file_repository.clone())
.route_layer(middleware::from_fn(mw_require_auth))
.layer(DefaultBodyLimit::disable());
let app = Router::new()
.nest("/api", routes_file)
@@ -47,6 +54,13 @@ async fn main() -> Result<()> {
mw_ctx_resolver,
))
.layer(CookieManagerLayer::new())
.layer(
CorsLayer::new()
.allow_origin("http://localhost:5173".parse::<HeaderValue>().unwrap())
.allow_methods([Method::GET, Method::POST, Method::DELETE])
.allow_credentials(true)
.allow_headers([header::CONTENT_TYPE]),
)
.fallback_service(ServeDir::new("./"));
let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await?;