172 похожих чатов

Use tokio; use tokio::io::{AsyncReadExt, BufReader}; use futures::stream::{TryStreamExt, StreamExt}; use async_compression; use scraper::{Html, Selector}; mod config; mod

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(())
}

8 ответов

23 просмотра

А что такое «останавливается»? Зависает или заявляет, что больше нет файлов?

Выглядит норм Ты проверил через tar tv, что их там реально несколько?

Arseniy-Lebedev Автор вопроса
Max Силинг
Выглядит норм Ты проверил через tar tv, что их там...

Я пробовал выполнять в блокирующем куске кода на оригинальном tar, но результат был тот же самый Да-да, unpack пробовал и так же я этот файл до того JS-ом распарсил

Arseniy Lebedev
Я пробовал выполнять в блокирующем куске кода на о...

Так анпак распаковал один файл или все файлы?

Arseniy Lebedev
Один

А тар тв при этом показывает все? Воспроизводится только на этом или на любом тар-файле? В том тар-файле, на котором воспроизводится, есть что-то секретное?

Arseniy Lebedev
Один

Может с архивом проблемы? Создай ещё один архив с несколькими файлами только другими.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
Карта сайта