bucket;
use crate::bucket::Bucket;
use crate::config::Settings;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// let bucket = <some config code>
let response = bucket.client
.get_object()
.bucket(&bucket.name)
.key(key)
.send()
.await?;
let body = response.body
.map_err(|err| std::io::Error::new(std::io::ErrorKind::Other, err));
let stream_reader = tokio_util::io::StreamReader::new(body);
let buf_reader = BufReader::new(stream_reader);
let tar = async_compression::tokio::bufread::GzipDecoder::new(buf_reader);
let mut tarball = tokio_tar::Archive::new(tar);
let mut entries = tarball.entries().unwrap();
while let Some(file) = entries.next().await {
let mut f = file?;
let mut str = String::new();
f.read_to_string(&mut str).await?;
println!("{}", f.header().path().unwrap().display());
}
println!("{:?}", entries.next().await);
println!("Done");
Ok(())
}
А что такое «останавливается»? Зависает или заявляет, что больше нет файлов?
Выглядит норм Ты проверил через tar tv, что их там реально несколько?
Я пробовал выполнять в блокирующем куске кода на оригинальном tar, но результат был тот же самый Да-да, unpack пробовал и так же я этот файл до того JS-ом распарсил
Так анпак распаковал один файл или все файлы?
А тар тв при этом показывает все? Воспроизводится только на этом или на любом тар-файле? В том тар-файле, на котором воспроизводится, есть что-то секретное?
Может с архивом проблемы? Создай ещё один архив с несколькими файлами только другими.
Обсуждают сегодня