feat(backend): add opendal storage for file payload and postgres record for metadata, add CORS layer
This commit is contained in:
@@ -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?;
|
||||
|
||||
Reference in New Issue
Block a user