+ let client = client.start_backup_reader(repo.store(), &backup_type, &backup_id, backup_time, true).wait()?;
+
+ use std::os::unix::fs::OpenOptionsExt;
+
+ let tmpfile = std::fs::OpenOptions::new()
+ .write(true)
+ .read(true)
+ .custom_flags(libc::O_TMPFILE)
+ .open("/tmp")?;
+
+ let tmpfile = client.download(&format!("{}.didx", archive_name), tmpfile).wait()?;
+
+ let index = DynamicIndexReader::new(tmpfile)?;
+
+ let chunk_reader = RemoteChunkReader::new(client.clone(), crypt_config);
+
+ let mut reader = BufferedDynamicReader::new(index, chunk_reader);
+
+ let feature_flags = pxar::CA_FORMAT_DEFAULT;
+ let mut decoder = pxar::SequentialDecoder::new(&mut reader, feature_flags);
+
+ decoder.restore(Path::new(target), & |path| {
+ if verbose {
+ println!("{:?}", path);
+ }
+ Ok(())
+ })?;
+