rc/bin/proxmox-backup-client.rs - restore: always download index.json.blob
This commit is contained in:
parent
0d9862803b
commit
02fcf372e4
|
@ -887,7 +887,25 @@ fn restore(
|
||||||
.custom_flags(libc::O_TMPFILE)
|
.custom_flags(libc::O_TMPFILE)
|
||||||
.open("/tmp")?;
|
.open("/tmp")?;
|
||||||
|
|
||||||
if server_archive_name.ends_with(".blob") {
|
const INDEX_BLOB_NAME: &str = "index.json.blob";
|
||||||
|
|
||||||
|
let index_data = client.download(INDEX_BLOB_NAME, Vec::with_capacity(64*1024)).wait()?;
|
||||||
|
let blob = DataBlob::from_raw(index_data)?;
|
||||||
|
blob.verify_crc()?;
|
||||||
|
let backup_index_data = blob.decode(crypt_config.clone())?;
|
||||||
|
let backup_index: Value = serde_json::from_slice(&backup_index_data[..])?;
|
||||||
|
|
||||||
|
if server_archive_name == INDEX_BLOB_NAME {
|
||||||
|
if let Some(target) = target {
|
||||||
|
file_set_contents(target, &backup_index_data, None)?;
|
||||||
|
} else {
|
||||||
|
let stdout = std::io::stdout();
|
||||||
|
let mut writer = stdout.lock();
|
||||||
|
writer.write_all(&backup_index_data)
|
||||||
|
.map_err(|err| format_err!("unable to pipe data - {}", err))?;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if server_archive_name.ends_with(".blob") {
|
||||||
let mut tmpfile = client.download(&server_archive_name, tmpfile).wait()?;
|
let mut tmpfile = client.download(&server_archive_name, tmpfile).wait()?;
|
||||||
tmpfile.seek(SeekFrom::Start(0))?;
|
tmpfile.seek(SeekFrom::Start(0))?;
|
||||||
let mut reader = DataBlobReader::new(tmpfile, crypt_config)?;
|
let mut reader = DataBlobReader::new(tmpfile, crypt_config)?;
|
||||||
|
|
Loading…
Reference in New Issue