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) {
let b64 = btoa(requestDetails.url)
// let original = atob(b64);
// console.log(`Loading: ${requestDetails.url} || ${b64}`);
return {
redirectUrl: `http://localhost:4433/s3/${b64}`
if (!requestDetails.url.startsWith("http://localhost")) {
console.log(`Loading: ${requestDetails.url} || ${b64}`);
return {
redirectUrl: `http://localhost:4433/s3/${b64}`
}
}
}

View File

@ -1,7 +1,13 @@
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;
@ -41,17 +47,38 @@ impl S3 {
client: client,
})
}
pub async fn get(&self, filename: &str) -> Option<String> {
let data = self
match self
.client
.get_object(&self.bucket_name, &filename)
.send()
.await
.unwrap();
if let Ok(segments )= data.content.to_segmented_bytes().await {
return Some(segments.to_bytes().iter().map(|c| *c as char).collect::<String>())
{
Ok(data) => {
if let Ok(segments) = data.content.to_segmented_bytes().await {
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
}