1
0
mirror of https://github.com/fafhrd91/actix-web synced 2024-11-27 09:42:57 +01:00

add file chunks stream adapter

This commit is contained in:
Rob Ede 2022-01-01 22:46:37 +00:00
parent 3f03af1c59
commit c759bdef4c
No known key found for this signature in database
GPG Key ID: 97C636207D3EF933
2 changed files with 7 additions and 2 deletions

View File

@ -33,7 +33,6 @@ mod path_buf;
mod range; mod range;
mod service; mod service;
pub use self::chunked::ChunkedReadFile;
pub use self::directory::Directory; pub use self::directory::Directory;
pub use self::files::Files; pub use self::files::Files;
pub use self::named::NamedFile; pub use self::named::NamedFile;

View File

@ -21,8 +21,9 @@ use actix_web::{
Error, HttpMessage, HttpRequest, HttpResponse, Responder, Error, HttpMessage, HttpRequest, HttpResponse, Responder,
}; };
use bitflags::bitflags; use bitflags::bitflags;
use bytes::Bytes;
use derive_more::{Deref, DerefMut}; use derive_more::{Deref, DerefMut};
use futures_core::future::LocalBoxFuture; use futures_core::{future::LocalBoxFuture, Stream};
use mime_guess::from_path; use mime_guess::from_path;
use crate::{encoding::equiv_utf8_text, range::HttpRange}; use crate::{encoding::equiv_utf8_text, range::HttpRange};
@ -527,6 +528,11 @@ impl NamedFile {
res.body(SizedStream::new(length, reader)) res.body(SizedStream::new(length, reader))
} }
/// Returns stream of chunks for the complete file.
pub fn into_chunk_stream(self) -> impl Stream<Item = Result<Bytes, Error>> {
chunked::new_chunked_read(self.md.len(), 0, self.file)
}
} }
/// Returns true if `req` has no `If-Match` header or one which matches `etag`. /// Returns true if `req` has no `If-Match` header or one which matches `etag`.