updated to new storage schema

This commit is contained in:
oliver 2024-12-13 18:02:22 -07:00
parent 20d9ce0f45
commit 55a868eef3
2 changed files with 16 additions and 9 deletions

View File

@ -19,12 +19,17 @@ function handle_header(req) {
let old = "" let old = ""
function url_redirect (req) { function url_redirect (req) {
let b64 = btoa(req.url)
let url = new URL(req.url);
let path = url.pathname;
let domain = url.hostname;
let b64 = btoa(path)
if (!req.url.startsWith("http://localhost")) { if (!req.url.startsWith("http://localhost")) {
old = req.url old = req.url
// console.debug(`Loading: ${req.url} || ${b64}`); // console.debug(`Loading: ${req.url} || ${b64}`);
return { return {
redirectUrl: `http://localhost:4433/s3/${b64}` redirectUrl: `http://localhost:4433/s3/${domain}/${b64}`
} }
} }
} }

View File

@ -21,10 +21,10 @@ async fn main() {
.init(); .init();
let config = Config { let config = Config {
s3_bucket: "b64v1", s3_bucket: "b64v2",
s3_url: "http://localhost:9000", s3_url: "http://localhost:9000",
s3_access_key: "8UO76z8wCs9DnpxSbQUY", s3_access_key: "Eyp21VVclXP8xx49bJ6D",
s3_secret_key: "xwKVMpf2jzgprsdo85Dvo74UmO84y0aRrAUorYY5", s3_secret_key: "VxqU9hQ2gl7TvHIFzCM74Og6rQUZcpgYpHNUBnVm",
}; };
let s3 = S3::connect(&config).await.expect("Failed to connect to minio, aborting."); let s3 = S3::connect(&config).await.expect("Failed to connect to minio, aborting.");
@ -58,13 +58,15 @@ impl<'r> FromRequest<'r> for Og{
} }
#[get("/s3/<path>")] #[get("/s3/<domain>/<file>")]
async fn get_s3_content(path: &str, db: &State<S3>, og: Og) -> (Status, (ContentType, String)) { async fn get_s3_content(domain: &str, file: &str, db: &State<S3>, og: Og) -> (Status, (ContentType, String)) {
use base64::prelude::*; use base64::prelude::*;
let filename = domain.to_owned() + "/" + file;
info!("{:?}", og.og); info!("{:?}", og.og);
if let Some(resp) = db.get(&path).await { if let Some(resp) = db.get(&filename).await {
let content_type = if let Ok(url) = BASE64_URL_SAFE.decode(path) { let content_type = if let Ok(url) = BASE64_URL_SAFE.decode(file) {
let url = url.into_iter().map(|f| f as char).collect::<String>(); let url = url.into_iter().map(|f| f as char).collect::<String>();
if let Some(filetype) = url.split('.').collect::<Vec<&str>>().last() { if let Some(filetype) = url.split('.').collect::<Vec<&str>>().last() {
ContentType::from_extension(&filetype).unwrap_or(ContentType::HTML) ContentType::from_extension(&filetype).unwrap_or(ContentType::HTML)