File tree Expand file tree Collapse file tree
objectstore-service/src/backend Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -210,25 +210,28 @@ where
210210 let mut metadata = Metadata :: from_headers ( headers, GCS_CUSTOM_PREFIX ) ?;
211211
212212 let content_range = if response. status ( ) == StatusCode :: PARTIAL_CONTENT {
213- headers
213+ let range = headers
214214 . get ( reqwest:: header:: CONTENT_RANGE )
215215 . and_then ( |v| v. to_str ( ) . ok ( ) )
216216 . and_then ( |s| s. parse :: < ContentRange > ( ) . ok ( ) )
217217 . ok_or_else ( || Error :: Generic {
218218 context : "S3: 206 response missing valid Content-Range header" . to_owned ( ) ,
219219 cause : None ,
220- } ) ?
220+ } ) ?;
221+ metadata. size = Some ( range. total as usize ) ;
222+ range
221223 } else {
222- let total = match response. content_length ( ) {
223- Some ( len) => len,
224+ match response. content_length ( ) {
225+ Some ( len) => {
226+ metadata. size = Some ( len as usize ) ;
227+ ContentRange :: full ( len)
228+ }
224229 None => {
225230 objectstore_log:: warn!( "S3: 200 response missing Content-Length header" ) ;
226- 0
231+ ContentRange :: full ( metadata . size . unwrap_or ( 0 ) as u64 )
227232 }
228- } ;
229- ContentRange :: full ( total)
233+ }
230234 } ;
231- metadata. size = Some ( content_range. total as usize ) ;
232235
233236 // TODO: Schedule into background persistently so this doesn't get lost on restarts
234237 if let ExpirationPolicy :: TimeToIdle ( tti) = metadata. expiration_policy {
You can’t perform that action at this time.
0 commit comments