s3api: return Location in CompleteMultipartUpload (fix #852)
NB. The location returned is not guaranteed to work in all cases. This already fixes the parse issue in #852.
This commit is contained in:
parent
a94adf804f
commit
165f9316e2
1 changed files with 10 additions and 1 deletions
|
@ -430,7 +430,16 @@ pub async fn handle_complete_multipart_upload(
|
||||||
// Send response saying ok we're done
|
// Send response saying ok we're done
|
||||||
let result = s3_xml::CompleteMultipartUploadResult {
|
let result = s3_xml::CompleteMultipartUploadResult {
|
||||||
xmlns: (),
|
xmlns: (),
|
||||||
location: None,
|
// FIXME: the location returned is not always correct:
|
||||||
|
// - we always return https, but maybe some people do http
|
||||||
|
// - if root_domain is not specified, a full URL is not returned
|
||||||
|
location: garage
|
||||||
|
.config
|
||||||
|
.s3_api
|
||||||
|
.root_domain
|
||||||
|
.as_ref()
|
||||||
|
.map(|rd| s3_xml::Value(format!("https://{}.{}/{}", bucket_name, rd, key)))
|
||||||
|
.or(Some(s3_xml::Value(format!("/{}/{}", bucket_name, key)))),
|
||||||
bucket: s3_xml::Value(bucket_name.to_string()),
|
bucket: s3_xml::Value(bucket_name.to_string()),
|
||||||
key: s3_xml::Value(key),
|
key: s3_xml::Value(key),
|
||||||
etag: s3_xml::Value(format!("\"{}\"", etag)),
|
etag: s3_xml::Value(format!("\"{}\"", etag)),
|
||||||
|
|
Loading…
Add table
Reference in a new issue