use axum::{ extract::{Extension, Host, Multipart}, response::{IntoResponse, Json, Response}, }; use bytes::buf::Buf; use futures_util::StreamExt; pub mod storage; use storage::{MediaStore, MediaStoreError}; /*pub fn upload() -> impl Filter + Clone { warp::post() .and(crate::util::require_host()) .and(warp::multipart::form().max_length(1024 * 1024 * 150 /*mb*/)) .and_then(|host, mut form: FormData| async move { // TODO get rid of the double unwrap() here let file: Part = form.next().await.unwrap().unwrap(); log::debug!( "Uploaded: {:?}, type: {:?}", file.filename(), file.content_type() ); let mut data = file.stream(); while let Some(buf) = data.next().await { // TODO save it into a file log::debug!("buffer length: {:?}", buf.map(|b| b.remaining())); } Ok::<_, warp::Rejection>(warp::reply::with_header( warp::reply::with_status("", warp::http::StatusCode::CREATED), "Location", "./awoo.png", )) }) }*/ pub async fn upload( Host(host): Host, upload: Multipart, Extension(db): Extension, ) -> Response { todo!() }