@@ -74,6 +74,23 @@ def sqlite_s3_query_multi(url, get_credentials=lambda now: (
74
74
local = threading .local ()
75
75
local .pending_exception = None
76
76
77
+ def get_request_headers_for_private_buckets (method , params , headers , now ):
78
+ region , access_key_id , secret_access_key , session_token = get_credentials (now )
79
+ to_auth_headers = headers + (
80
+ (('x-amz-security-token' , session_token ),) if session_token is not None else \
81
+ ()
82
+ )
83
+ return aws_sigv4_headers (
84
+ now , access_key_id , secret_access_key , region , method , to_auth_headers , params ,
85
+ )
86
+
87
+ def get_request_headers_for_public_buckets (_ , __ , headers , ___ ):
88
+ return headers
89
+
90
+ get_request_headers = \
91
+ get_request_headers_for_private_buckets if get_credentials is not None else \
92
+ get_request_headers_for_public_buckets
93
+
77
94
def set_pending_exception (exception ):
78
95
local .pending_exception = exception
79
96
@@ -98,15 +115,8 @@ def run_with_db(db, func, *args):
98
115
@contextmanager
99
116
def make_auth_request (http_client , method , params , headers ):
100
117
now = datetime .utcnow ()
101
- region , access_key_id , secret_access_key , session_token = get_credentials (now )
102
- to_auth_headers = headers + (
103
- (('x-amz-security-token' , session_token ),) if session_token is not None else \
104
- ()
105
- )
106
- request_headers = aws_sigv4_headers (
107
- now , access_key_id , secret_access_key , region , method , to_auth_headers , params ,
108
- )
109
118
url = f'{ scheme } ://{ netloc } { path } '
119
+ request_headers = get_request_headers (method , params , headers , now )
110
120
with http_client .stream (method , url , params = params , headers = request_headers ) as response :
111
121
response .raise_for_status ()
112
122
yield response
0 commit comments