feat(backend): don't dump uploaded files to root of vault
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

Put them into `_up_data` instead.
This commit is contained in:
Tomáš Mládek 2024-07-30 19:07:46 +02:00
parent 2cdaf794e4
commit 8a254f8be4
2 changed files with 13 additions and 4 deletions

3
.gitignore vendored
View file

@ -10,4 +10,5 @@ upend.sqlite3
/.pnpm /.pnpm
/.cargo /.cargo
example_vault/zb* example_vault/zb*
example_vault/_up_data

View file

@ -35,6 +35,7 @@ mod db;
pub const FILE_MIME_KEY: &str = "FILE_MIME"; pub const FILE_MIME_KEY: &str = "FILE_MIME";
const FILE_SIZE_KEY: &str = "FILE_SIZE"; const FILE_SIZE_KEY: &str = "FILE_SIZE";
const INCOMING_DIRECTORY: &str = "_up_data";
pub struct FsStore { pub struct FsStore {
path: PathBuf, path: PathBuf,
@ -396,8 +397,13 @@ impl FsStore {
Ok(Some(upath)) Ok(Some(upath))
} }
BlobMode::Mirror => { BlobMode::Mirror => {
let normalized_path = self.normalize_path(path).unwrap(); let path = self.normalize_path(path).unwrap();
let path = normalized_path.parent().unwrap(); let path = path.parent().unwrap();
let path = if path.ends_with(INCOMING_DIRECTORY) {
path.parent().unwrap_or(path)
} else {
path
};
let upath = let upath =
iter::once("NATIVE".parse().unwrap()) iter::once("NATIVE".parse().unwrap())
@ -687,7 +693,9 @@ impl UpStore for FsStore {
addr_str addr_str
}; };
let final_path = self.path.join(final_name); let incoming_path = self.path.join(INCOMING_DIRECTORY);
fs::create_dir_all(&incoming_path).map_err(|e| StoreError::Unknown(e.to_string()))?;
let final_path = incoming_path.join(final_name);
blob.copy_to(&final_path) blob.copy_to(&final_path)
.map_err(|e| StoreError::Unknown(e.to_string()))?; .map_err(|e| StoreError::Unknown(e.to_string()))?;