Basically, I'm smarter than everybody else.
This commit is contained in:
		@@ -1,12 +1,12 @@
 | 
			
		||||
function handle(requestDetails) {
 | 
			
		||||
    let b64 = btoa(requestDetails.url)
 | 
			
		||||
    // let original = atob(b64);
 | 
			
		||||
    // console.log(`Loading: ${requestDetails.url} || ${b64}`);
 | 
			
		||||
 | 
			
		||||
    if (!requestDetails.url.startsWith("http://localhost")) {
 | 
			
		||||
        console.log(`Loading: ${requestDetails.url} || ${b64}`);
 | 
			
		||||
        return {
 | 
			
		||||
            redirectUrl: `http://localhost:4433/s3/${b64}`
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
browser.webRequest.onBeforeRequest.addListener(
 | 
			
		||||
    handle, { urls: ["<all_urls>"] }, ["blocking"]
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										39
									
								
								src/s3.rs
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								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;
 | 
			
		||||
 | 
			
		||||
@@ -43,15 +49,36 @@ impl S3 {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub async fn get(&self, filename: &str) -> Option<String> {
 | 
			
		||||
        let data = self
 | 
			
		||||
        match self
 | 
			
		||||
            .client
 | 
			
		||||
            .get_object(&self.bucket_name, &filename)
 | 
			
		||||
            .send()
 | 
			
		||||
            .await
 | 
			
		||||
            .unwrap();
 | 
			
		||||
             
 | 
			
		||||
        {
 | 
			
		||||
            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>())
 | 
			
		||||
                    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
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user