handle known chunks

This commit is contained in:
Dietmar Maurer 2019-09-21 15:45:21 +02:00
parent d50d567b9b
commit 64100fed29

View File

@ -267,20 +267,26 @@ async fn write_data(
let digest = chunk_builder.digest(); let digest = chunk_builder.digest();
let digest_str = proxmox::tools::digest_to_hex(digest); let digest_str = proxmox::tools::digest_to_hex(digest);
// fixme: handle known chunks let chunk_is_known = known_chunks.lock().unwrap().contains(digest);
let chunk = chunk_builder.build()?; if chunk_is_known {
let chunk_data = chunk.into_raw(); digest_str
} else {
let digest = *digest;
let chunk = chunk_builder.build()?;
let chunk_data = chunk.into_raw();
let param = json!({ let param = json!({
"wid": wid, "wid": wid,
"digest": digest_str, "digest": digest_str,
"size": size, "size": size,
"encoded-size": chunk_data.len(), "encoded-size": chunk_data.len(),
}); });
client.upload_post("fixed_chunk", Some(param), "application/octet-stream", chunk_data).await?; client.upload_post("fixed_chunk", Some(param), "application/octet-stream", chunk_data).await?;
digest_str known_chunks.lock().unwrap().insert(digest);
digest_str
}
}; };
let append_list = { let append_list = {