api: always use complete file names (including add exctensions)
This commit is contained in:
parent
d7c243977d
commit
4af0ee055a
@ -228,11 +228,9 @@ fn create_dynamic_index(
|
|||||||
|
|
||||||
let name = tools::required_string_param(¶m, "archive-name")?.to_owned();
|
let name = tools::required_string_param(¶m, "archive-name")?.to_owned();
|
||||||
|
|
||||||
let mut archive_name = name.clone();
|
let archive_name = name.clone();
|
||||||
if !archive_name.ends_with(".pxar") {
|
if !archive_name.ends_with(".pxar.didx") {
|
||||||
bail!("wrong archive extension: '{}'", archive_name);
|
bail!("wrong archive extension: '{}'", archive_name);
|
||||||
} else {
|
|
||||||
archive_name.push_str(".didx");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut path = env.backup_dir.relative_path();
|
let mut path = env.backup_dir.relative_path();
|
||||||
@ -270,11 +268,9 @@ fn create_fixed_index(
|
|||||||
let name = tools::required_string_param(¶m, "archive-name")?.to_owned();
|
let name = tools::required_string_param(¶m, "archive-name")?.to_owned();
|
||||||
let size = tools::required_integer_param(¶m, "size")? as usize;
|
let size = tools::required_integer_param(¶m, "size")? as usize;
|
||||||
|
|
||||||
let mut archive_name = name.clone();
|
let archive_name = name.clone();
|
||||||
if !archive_name.ends_with(".img") {
|
if !archive_name.ends_with(".img.fidx") {
|
||||||
bail!("wrong archive extension: '{}'", archive_name);
|
bail!("wrong archive extension: '{}'", archive_name);
|
||||||
} else {
|
|
||||||
archive_name.push_str(".fidx");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut path = env.backup_dir.relative_path();
|
let mut path = env.backup_dir.relative_path();
|
||||||
@ -502,12 +498,10 @@ fn dynamic_chunk_index(
|
|||||||
|
|
||||||
let env: &BackupEnvironment = rpcenv.as_ref();
|
let env: &BackupEnvironment = rpcenv.as_ref();
|
||||||
|
|
||||||
let mut archive_name = tools::required_string_param(¶m, "archive-name")?.to_owned();
|
let archive_name = tools::required_string_param(¶m, "archive-name")?.to_owned();
|
||||||
|
|
||||||
if !archive_name.ends_with(".pxar") {
|
if !archive_name.ends_with(".pxar.didx") {
|
||||||
bail!("wrong archive extension: '{}'", archive_name);
|
bail!("wrong archive extension: '{}'", archive_name);
|
||||||
} else {
|
|
||||||
archive_name.push_str(".didx");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let empty_response = {
|
let empty_response = {
|
||||||
@ -575,12 +569,10 @@ fn fixed_chunk_index(
|
|||||||
|
|
||||||
let env: &BackupEnvironment = rpcenv.as_ref();
|
let env: &BackupEnvironment = rpcenv.as_ref();
|
||||||
|
|
||||||
let mut archive_name = tools::required_string_param(¶m, "archive-name")?.to_owned();
|
let archive_name = tools::required_string_param(¶m, "archive-name")?.to_owned();
|
||||||
|
|
||||||
if !archive_name.ends_with(".img") {
|
if !archive_name.ends_with(".img.fidx") {
|
||||||
bail!("wrong archive extension: '{}'", archive_name);
|
bail!("wrong archive extension: '{}'", archive_name);
|
||||||
} else {
|
|
||||||
archive_name.push_str(".fidx");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let empty_response = {
|
let empty_response = {
|
||||||
|
@ -242,13 +242,15 @@ fn upload_blob(
|
|||||||
rpcenv: Box<dyn RpcEnvironment>,
|
rpcenv: Box<dyn RpcEnvironment>,
|
||||||
) -> Result<BoxFut, Error> {
|
) -> Result<BoxFut, Error> {
|
||||||
|
|
||||||
let mut file_name = tools::required_string_param(¶m, "file-name")?.to_owned();
|
let file_name = tools::required_string_param(¶m, "file-name")?.to_owned();
|
||||||
let encoded_size = tools::required_integer_param(¶m, "encoded-size")? as usize;
|
let encoded_size = tools::required_integer_param(¶m, "encoded-size")? as usize;
|
||||||
|
|
||||||
|
|
||||||
let env: &BackupEnvironment = rpcenv.as_ref();
|
let env: &BackupEnvironment = rpcenv.as_ref();
|
||||||
|
|
||||||
file_name.push_str(".blob");
|
if !file_name.ends_with(".blob") {
|
||||||
|
bail!("wrong blob file extension: '{}'", file_name);
|
||||||
|
}
|
||||||
|
|
||||||
let env2 = env.clone();
|
let env2 = env.clone();
|
||||||
let env3 = env.clone();
|
let env3 = env.clone();
|
||||||
|
@ -519,14 +519,15 @@ fn create_backup(
|
|||||||
};
|
};
|
||||||
let file_type = metadata.file_type();
|
let file_type = metadata.file_type();
|
||||||
|
|
||||||
let extension = Path::new(target).extension().map(|s| s.to_str().unwrap()).unwrap();
|
let extension = target.rsplit('.').next()
|
||||||
|
.ok_or(format_err!("missing target file extenion '{}'", target))?;
|
||||||
|
|
||||||
match extension {
|
match extension {
|
||||||
"pxar" => {
|
"pxar" => {
|
||||||
if !file_type.is_dir() {
|
if !file_type.is_dir() {
|
||||||
bail!("got unexpected file type (expected directory)");
|
bail!("got unexpected file type (expected directory)");
|
||||||
}
|
}
|
||||||
upload_list.push((BackupType::PXAR, filename.to_owned(), target.to_owned(), 0));
|
upload_list.push((BackupType::PXAR, filename.to_owned(), format!("{}.didx", target), 0));
|
||||||
}
|
}
|
||||||
"img" => {
|
"img" => {
|
||||||
|
|
||||||
@ -538,19 +539,19 @@ fn create_backup(
|
|||||||
|
|
||||||
if size == 0 { bail!("got zero-sized file '{}'", filename); }
|
if size == 0 { bail!("got zero-sized file '{}'", filename); }
|
||||||
|
|
||||||
upload_list.push((BackupType::IMAGE, filename.to_owned(), target.to_owned(), size));
|
upload_list.push((BackupType::IMAGE, filename.to_owned(), format!("{}.fidx", target), size));
|
||||||
}
|
}
|
||||||
"conf" => {
|
"conf" => {
|
||||||
if !file_type.is_file() {
|
if !file_type.is_file() {
|
||||||
bail!("got unexpected file type (expected regular file)");
|
bail!("got unexpected file type (expected regular file)");
|
||||||
}
|
}
|
||||||
upload_list.push((BackupType::CONFIG, filename.to_owned(), target.to_owned(), metadata.len()));
|
upload_list.push((BackupType::CONFIG, filename.to_owned(), format!("{}.blob", target), metadata.len()));
|
||||||
}
|
}
|
||||||
"log" => {
|
"log" => {
|
||||||
if !file_type.is_file() {
|
if !file_type.is_file() {
|
||||||
bail!("got unexpected file type (expected regular file)");
|
bail!("got unexpected file type (expected regular file)");
|
||||||
}
|
}
|
||||||
upload_list.push((BackupType::LOGFILE, filename.to_owned(), target.to_owned(), metadata.len()));
|
upload_list.push((BackupType::LOGFILE, filename.to_owned(), format!("{}.blob", target), metadata.len()));
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
bail!("got unknown archive extension '{}'", extension);
|
bail!("got unknown archive extension '{}'", extension);
|
||||||
@ -599,12 +600,12 @@ fn create_backup(
|
|||||||
BackupType::CONFIG => {
|
BackupType::CONFIG => {
|
||||||
println!("Upload config file '{}' to '{:?}' as {}", filename, repo, target);
|
println!("Upload config file '{}' to '{:?}' as {}", filename, repo, target);
|
||||||
let stats = client.upload_blob_from_file(&filename, &target, crypt_config.clone(), true).wait()?;
|
let stats = client.upload_blob_from_file(&filename, &target, crypt_config.clone(), true).wait()?;
|
||||||
file_list.push((target, stats));
|
file_list.push((format!("{}.blob", target), stats));
|
||||||
}
|
}
|
||||||
BackupType::LOGFILE => { // fixme: remove - not needed anymore ?
|
BackupType::LOGFILE => { // fixme: remove - not needed anymore ?
|
||||||
println!("Upload log file '{}' to '{:?}' as {}", filename, repo, target);
|
println!("Upload log file '{}' to '{:?}' as {}", filename, repo, target);
|
||||||
let stats = client.upload_blob_from_file(&filename, &target, crypt_config.clone(), true).wait()?;
|
let stats = client.upload_blob_from_file(&filename, &target, crypt_config.clone(), true).wait()?;
|
||||||
file_list.push((target, stats));
|
file_list.push((format!("{}.blob", target), stats));
|
||||||
}
|
}
|
||||||
BackupType::PXAR => {
|
BackupType::PXAR => {
|
||||||
println!("Upload directory '{}' to '{:?}' as {}", filename, repo, target);
|
println!("Upload directory '{}' to '{:?}' as {}", filename, repo, target);
|
||||||
@ -618,7 +619,7 @@ fn create_backup(
|
|||||||
skip_lost_and_found,
|
skip_lost_and_found,
|
||||||
crypt_config.clone(),
|
crypt_config.clone(),
|
||||||
)?;
|
)?;
|
||||||
file_list.push((target, stats));
|
file_list.push((format!("{}.didx", target), stats));
|
||||||
}
|
}
|
||||||
BackupType::IMAGE => {
|
BackupType::IMAGE => {
|
||||||
println!("Upload image '{}' to '{:?}' as {}", filename, repo, target);
|
println!("Upload image '{}' to '{:?}' as {}", filename, repo, target);
|
||||||
@ -631,7 +632,7 @@ fn create_backup(
|
|||||||
verbose,
|
verbose,
|
||||||
crypt_config.clone(),
|
crypt_config.clone(),
|
||||||
)?;
|
)?;
|
||||||
file_list.push((target, stats));
|
file_list.push((format!("{}.fidx", target), stats));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -640,7 +641,7 @@ fn create_backup(
|
|||||||
let target = "rsa-encrypted.key";
|
let target = "rsa-encrypted.key";
|
||||||
println!("Upload RSA encoded key to '{:?}' as {}", repo, target);
|
println!("Upload RSA encoded key to '{:?}' as {}", repo, target);
|
||||||
let stats = client.upload_blob_from_data(rsa_encrypted_key, target, None, false, false).wait()?;
|
let stats = client.upload_blob_from_data(rsa_encrypted_key, target, None, false, false).wait()?;
|
||||||
file_list.push((target.to_owned(), stats));
|
file_list.push((format!("{}.blob", target), stats));
|
||||||
|
|
||||||
// openssl rsautl -decrypt -inkey master-private.pem -in rsa-encrypted.key -out t
|
// openssl rsautl -decrypt -inkey master-private.pem -in rsa-encrypted.key -out t
|
||||||
/*
|
/*
|
||||||
@ -672,7 +673,7 @@ fn create_backup(
|
|||||||
|
|
||||||
println!("Upload index.json to '{:?}'", repo);
|
println!("Upload index.json to '{:?}'", repo);
|
||||||
let index_data = serde_json::to_string_pretty(&index)?.into();
|
let index_data = serde_json::to_string_pretty(&index)?.into();
|
||||||
client.upload_blob_from_data(index_data, "index.json", crypt_config.clone(), true, true).wait()?;
|
client.upload_blob_from_data(index_data, "index.json.blob", crypt_config.clone(), true, true).wait()?;
|
||||||
|
|
||||||
client.finish().wait()?;
|
client.finish().wait()?;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user