Basically, I'm smarter than everybody else.

This commit is contained in:
Oliver Atkinson 2024-12-13 14:05:08 -07:00
parent b5e30e467b
commit 0fb49cbfd0
2 changed files with 40 additions and 13 deletions

View File

@ -1,10 +1,10 @@
function handle(requestDetails) { function handle(requestDetails) {
let b64 = btoa(requestDetails.url) let b64 = btoa(requestDetails.url)
// let original = atob(b64); if (!requestDetails.url.startsWith("http://localhost")) {
// console.log(`Loading: ${requestDetails.url} || ${b64}`); console.log(`Loading: ${requestDetails.url} || ${b64}`);
return {
return { redirectUrl: `http://localhost:4433/s3/${b64}`
redirectUrl: `http://localhost:4433/s3/${b64}` }
} }
} }

View File

@ -1,7 +1,13 @@
use minio::s3::{ use minio::s3::{
args::{BucketExistsArgs, MakeBucketArgs}, client::ClientBuilder, creds::StaticProvider, error::Error, http::BaseUrl, types::S3Api, Client args::{BucketExistsArgs, MakeBucketArgs},
client::ClientBuilder,
creds::StaticProvider,
error::Error,
http::BaseUrl,
types::S3Api,
Client,
}; };
use tracing::{instrument, trace}; use tracing::{error, instrument, trace, warn};
use crate::Config; use crate::Config;
@ -41,17 +47,38 @@ impl S3 {
client: client, client: client,
}) })
} }
pub async fn get(&self, filename: &str) -> Option<String> { pub async fn get(&self, filename: &str) -> Option<String> {
let data = self match self
.client .client
.get_object(&self.bucket_name, &filename) .get_object(&self.bucket_name, &filename)
.send() .send()
.await .await
.unwrap(); {
Ok(data) => {
if let Ok(segments )= data.content.to_segmented_bytes().await { if let Ok(segments) = data.content.to_segmented_bytes().await {
return Some(segments.to_bytes().iter().map(|c| *c as char).collect::<String>()) return Some(
segments
.to_bytes()
.iter()
.map(|c| *c as char)
.collect::<String>(),
);
}
}
Err(e) => {
match e {
Error::S3Error(error_response) => {
if error_response.code == "NoSuchKey" {
warn!("Resource not found")
}
},
_ => {
let error = e.to_string();
error!("S3 Error: {error}");
}
}
},
} }
None None
} }