Skip to content

Commit eba5b61

Browse files
committed
Bugfix for header sort order for S3 Requester pays mode.
1 parent 7573fd7 commit eba5b61

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

extension/httpfs/s3fs.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,30 +74,30 @@ static HTTPHeaders create_s3_header(string url, string query, string host, strin
7474
signed_headers += "content-type;";
7575
}
7676
signed_headers += "host;x-amz-content-sha256;x-amz-date";
77+
if (use_requester_pays) {
78+
signed_headers += ";x-amz-request-payer";
79+
}
7780
if (auth_params.session_token.length() > 0) {
7881
signed_headers += ";x-amz-security-token";
7982
}
8083
if (use_sse_kms) {
8184
signed_headers += ";x-amz-server-side-encryption;x-amz-server-side-encryption-aws-kms-key-id";
8285
}
83-
if (use_requester_pays) {
84-
signed_headers += ";x-amz-request-payer";
85-
}
8686
auto canonical_request = method + "\n" + S3FileSystem::UrlEncode(url) + "\n" + query;
8787
if (content_type.length() > 0) {
8888
canonical_request += "\ncontent-type:" + content_type;
8989
}
9090
canonical_request += "\nhost:" + host + "\nx-amz-content-sha256:" + payload_hash + "\nx-amz-date:" + datetime_now;
91+
if (use_requester_pays) {
92+
canonical_request += "\nx-amz-request-payer:requester";
93+
}
9194
if (auth_params.session_token.length() > 0) {
9295
canonical_request += "\nx-amz-security-token:" + auth_params.session_token;
9396
}
9497
if (use_sse_kms) {
9598
canonical_request += "\nx-amz-server-side-encryption:aws:kms";
9699
canonical_request += "\nx-amz-server-side-encryption-aws-kms-key-id:" + auth_params.kms_key_id;
97100
}
98-
if (use_requester_pays) {
99-
canonical_request += "\nx-amz-request-payer:requester";
100-
}
101101

102102
canonical_request += "\n\n" + signed_headers + "\n" + payload_hash;
103103
sha256(canonical_request.c_str(), canonical_request.length(), canonical_request_hash);

0 commit comments

Comments
 (0)