@@ -11,21 +11,17 @@ use futures::channel::mpsc::UnboundedReceiver;
1111use futures:: stream:: FusedStream ;
1212use futures:: { Stream , StreamExt } ;
1313use mountpoint_s3_crt:: http:: request_response:: { Header , Headers } ;
14- use mountpoint_s3_crt:: s3:: buffer:: Buffer ;
1514use mountpoint_s3_crt:: s3:: client:: { MetaRequest , MetaRequestResult } ;
1615use pin_project:: pin_project;
1716use tracing:: trace;
1817
1918use crate :: error_metadata:: ClientErrorMetadata ;
2019use crate :: object_client:: {
21- Checksum , ChecksumMode , ClientBackpressureHandle , GetBodyPart , GetObjectError , GetObjectParams , ObjectClientError ,
22- ObjectClientResult , ObjectMetadata ,
20+ Checksum , ChecksumMode , ClientBackpressureHandle , GetBodyPart , GetObjectError , GetObjectParams , GetObjectResponse ,
21+ ObjectChecksumError , ObjectClientError , ObjectClientResult , ObjectMetadata ,
2322} ;
2423
25- use super :: {
26- CancellingMetaRequest , GetObjectResponse , ObjectChecksumError , ResponseHeadersError , S3CrtClient , S3Operation ,
27- S3RequestError , parse_checksum,
28- } ;
24+ use super :: { CancellingMetaRequest , ResponseHeadersError , S3CrtClient , S3Operation , S3RequestError , parse_checksum} ;
2925
3026impl S3CrtClient {
3127 /// Create and begin a new GetObject request. The returned [S3GetObjectResponse] is a [Stream] of
@@ -85,6 +81,7 @@ impl S3CrtClient {
8581
8682 let mut headers_sender = Some ( event_sender. clone ( ) ) ;
8783 let part_sender = event_sender. clone ( ) ;
84+
8885 self . inner . meta_request_with_callbacks (
8986 options,
9087 span,
@@ -101,10 +98,11 @@ impl S3CrtClient {
10198 }
10299 } ,
103100 move |offset, data| {
104- let body_part = GetBodyPart {
105- offset,
106- data : make_owned_bytes ( data) ,
107- } ;
101+ let owned_buffer = data
102+ . to_owned_buffer ( )
103+ . expect ( "buffers returned from GetObject can always be acquired" ) ;
104+ let bytes = Bytes :: from_owner ( owned_buffer) ;
105+ let body_part = GetBodyPart { offset, data : bytes } ;
108106 _ = part_sender. unbounded_send ( S3GetObjectEvent :: BodyPart ( body_part) ) ;
109107 } ,
110108 parse_get_object_error,
@@ -150,19 +148,6 @@ impl S3CrtClient {
150148 }
151149}
152150
153- #[ cfg( not( feature = "restore_buffer_copy" ) ) ]
154- fn make_owned_bytes ( data : & Buffer ) -> Bytes {
155- let owned_buffer = data
156- . to_owned_buffer ( )
157- . expect ( "buffers returned from GetObject can always be acquired" ) ;
158- Bytes :: from_owner ( owned_buffer)
159- }
160-
161- #[ cfg( feature = "restore_buffer_copy" ) ]
162- fn make_owned_bytes ( data : & Buffer ) -> Bytes {
163- Bytes :: copy_from_slice ( data)
164- }
165-
166151#[ derive( Debug ) ]
167152enum S3GetObjectEvent {
168153 Headers ( Headers ) ,
0 commit comments