diff --git a/browser/background.js b/browser/background.js index 2e64fd3..f31e1a8 100644 --- a/browser/background.js +++ b/browser/background.js @@ -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}` + } } } diff --git a/src/s3.rs b/src/s3.rs index 99f9b70..22941e7 100644 --- a/src/s3.rs +++ b/src/s3.rs @@ -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 { - 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::()) + { + Ok(data) => { + if let Ok(segments) = data.content.to_segmented_bytes().await { + return Some( + segments + .to_bytes() + .iter() + .map(|c| *c as char) + .collect::(), + ); + } + } + 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 }