Skip to content

Commit 93e1429

Browse files
committed
fix
1 parent af35f08 commit 93e1429

1 file changed

Lines changed: 11 additions & 8 deletions

File tree

objectstore-service/src/backend/s3_compatible.rs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff 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 {

0 commit comments

Comments
 (0)