feat: secfile content-type

This commit is contained in:
2023-03-05 13:04:09 +08:00
parent b1e951847a
commit 7e250b54b1

View File

@@ -13,6 +13,7 @@
use std::collections::HashMap;
use std::fs;
use std::path::PathBuf;
use base64::Engine;
use clap::{arg, Parser};
use rust_util::{debugging, failure_and_exit, information, success};
@@ -107,8 +108,122 @@ fn main() {
}
fn get_content_type(file_name: &str) -> String {
let file_name = file_name.to_ascii_lowercase();
if file_name.ends_with(".txt") {
"text/plain".into()
} else if file_name.ends_with(".aac") {
"audio/aac".into()
} else if file_name.ends_with(".avi") {
"video/x-msvideo".into()
} else if file_name.ends_with(".css") {
"text/css".into()
} else if file_name.ends_with(".csv") {
"text/csv".into()
} else if file_name.ends_with(".doc") {
"application/msword".into()
} else if file_name.ends_with(".docx") {
"application/vnd.openxmlformats-officedocument.wordprocessingml.document".into()
} else if file_name.ends_with(".eot") {
"application/vnd.ms-fontobject".into()
} else if file_name.ends_with(".epub") {
"application/epub+zip".into()
} else if file_name.ends_with(".gz") {
"application/gzip".into()
} else if file_name.ends_with(".dif") {
"image/gif".into()
} else if file_name.ends_with(".htm")
|| file_name.ends_with(".html") {
"text/html".into()
} else if file_name.ends_with(".ico") {
"image/vnd.microsoft.icon".into()
} else if file_name.ends_with(".jar") {
"application/java-archive".into()
} else if file_name.ends_with(".jpe")
|| file_name.ends_with(".jpg")
|| file_name.ends_with(".jpeg") {
"image/jpeg".into()
} else if file_name.ends_with(".js") {
"text/javascript".into()
} else if file_name.ends_with(".json") {
"application/json".into()
} else if file_name.ends_with(".jsonld") {
"application/ld+json".into()
} else if file_name.ends_with(".mid")
|| file_name.ends_with(".midi") {
"audio/midi".into()
} else if file_name.ends_with(".mp3") {
"audio/mpeg".into()
} else if file_name.ends_with(".mp4") {
"video/mp4".into()
} else if file_name.ends_with(".mpeg") {
"video/mpeg".into()
} else if file_name.ends_with(".mpkg") {
"application/vnd.apple.installer+xml".into()
} else if file_name.ends_with(".odp") {
"application/vnd.oasis.opendocument.presentation".into()
} else if file_name.ends_with(".ods") {
"application/vnd.oasis.opendocument.spreadsheet".into()
} else if file_name.ends_with(".odt") {
"application/vnd.oasis.opendocument.text".into()
} else if file_name.ends_with(".oga") {
"audio/ogg".into()
} else if file_name.ends_with(".ogv") {
"video/ogg".into()
} else if file_name.ends_with(".ogg") {
"application/ogg".into()
} else if file_name.ends_with(".otf") {
"font/otf".into()
} else if file_name.ends_with(".png") {
"image/png".into()
} else if file_name.ends_with(".pdf") {
"application/pdf".into()
} else if file_name.ends_with(".ppt") {
"application/vnd.ms-powerpoint".into()
} else if file_name.ends_with(".pptx") {
"application/vnd.openxmlformats-officedocument.presentationml.presentation".into()
} else if file_name.ends_with(".rar") {
"application/vnd.rar".into()
} else if file_name.ends_with(".rtf") {
"application/rtf".into()
} else if file_name.ends_with(".sh") {
"application/x-sh".into()
} else if file_name.ends_with(".svg") {
"image/svg+xml".into()
} else if file_name.ends_with(".tar") {
"application/x-tar".into()
} else if file_name.ends_with(".tif")
|| file_name.ends_with(".tiff") {
"image/tiff".into()
} else if file_name.ends_with(".ts") {
"video/mp2t".into()
} else if file_name.ends_with(".ttf") {
"font/ttf".into()
} else if file_name.ends_with(".wav") {
"audio/wav".into()
} else if file_name.ends_with(".weba") {
"audio/webm".into()
} else if file_name.ends_with(".webm") {
"video/webm".into()
} else if file_name.ends_with(".webp") {
"image/webp".into()
} else if file_name.ends_with(".woff") {
"font/woff".into()
} else if file_name.ends_with(".woff2") {
"font/woff2".into()
} else if file_name.ends_with(".xhtml") {
"application/xhtml+xml".into()
} else if file_name.ends_with(".xls") {
"application/vnd.ms-excel".into()
} else if file_name.ends_with(".xlsx") {
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet".into()
} else if file_name.ends_with(".xml") {
"application/xml".into()
} else if file_name.ends_with(".zip") {
"application/zip".into()
} else if file_name.ends_with(".3gp") {
"video/3gpp".into()
} else if file_name.ends_with(".7z") {
"application/x-7z-compressed".into()
} else {
"application/octet-stream".into()
}