Basically, I'm smarter than everybody else.
This commit is contained in:
parent
b5e30e467b
commit
0fb49cbfd0
@ -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}`
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
41
src/s3.rs
41
src/s3.rs
@ -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;
|
||||||
|
|
||||||
@ -43,15 +49,36 @@ impl S3 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
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
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user