Skip to content

Commit 810f64e

Browse files
authored
Merge pull request #99 from gizmodata/main
Bugfix for headers in S3 requester pays mode - when session token is present.
2 parents dc87eee + 04a0e53 commit 810f64e

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

extension/httpfs/s3fs.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,30 +80,30 @@ static HTTPHeaders create_s3_header(string url, string query, string host, strin
8080
#endif
8181
}
8282
signed_headers += "host;x-amz-content-sha256;x-amz-date";
83+
if (use_requester_pays) {
84+
signed_headers += ";x-amz-request-payer";
85+
}
8386
if (auth_params.session_token.length() > 0) {
8487
signed_headers += ";x-amz-security-token";
8588
}
8689
if (use_sse_kms) {
8790
signed_headers += ";x-amz-server-side-encryption;x-amz-server-side-encryption-aws-kms-key-id";
8891
}
89-
if (use_requester_pays) {
90-
signed_headers += ";x-amz-request-payer";
91-
}
92-
auto canonical_request = method + "\n" + S3FileSystem::UrlEncode(url) + "\n" + query;
92+
auto canonical_request = method + "\n" + S3FileSystem::UrlEncode(url) + "\n" + query;
9393
if (content_type.length() > 0) {
9494
canonical_request += "\ncontent-type:" + content_type;
9595
}
9696
canonical_request += "\nhost:" + host + "\nx-amz-content-sha256:" + payload_hash + "\nx-amz-date:" + datetime_now;
97+
if (use_requester_pays) {
98+
canonical_request += "\nx-amz-request-payer:requester";
99+
}
97100
if (auth_params.session_token.length() > 0) {
98101
canonical_request += "\nx-amz-security-token:" + auth_params.session_token;
99102
}
100103
if (use_sse_kms) {
101104
canonical_request += "\nx-amz-server-side-encryption:aws:kms";
102105
canonical_request += "\nx-amz-server-side-encryption-aws-kms-key-id:" + auth_params.kms_key_id;
103106
}
104-
if (use_requester_pays) {
105-
canonical_request += "\nx-amz-request-payer:requester";
106-
}
107107

108108
canonical_request += "\n\n" + signed_headers + "\n" + payload_hash;
109109
sha256(canonical_request.c_str(), canonical_request.length(), canonical_request_hash);
@@ -426,7 +426,7 @@ void S3FileSystem::FlushBuffer(S3FileHandle &file_handle, shared_ptr<S3WriteBuff
426426

427427
{
428428
unique_lock<mutex> lck(file_handle.uploads_in_progress_lock);
429-
// check if there are upload threads available
429+
// check if there are upload threads available
430430
#ifndef SAME_THREAD_UPLOAD
431431
if (file_handle.uploads_in_progress >= file_handle.config_params.max_upload_threads) {
432432
// there are not - wait for one to become available

0 commit comments

Comments
 (0)