|
1 | | -# coding=utf-8 |
2 | 1 | import datetime |
3 | | -import json |
4 | 2 | import mimetypes |
5 | 3 | import os |
| 4 | +from urllib.parse import quote |
6 | 5 |
|
7 | 6 | import six |
8 | | -from six.moves.urllib.parse import quote |
9 | | -from urllib3 import Timeout |
10 | 7 |
|
11 | | -from volcenginesdkcore.signv4 import SignerV4 |
12 | 8 | from .interceptor import RequestInterceptor |
13 | 9 |
|
14 | 10 |
|
15 | | -class SignRequestInterceptor(RequestInterceptor): |
16 | | - """SDK通用请求拦截器""" |
17 | | - |
18 | | - def name(self): |
19 | | - return 'volcengine-sign-request-interceptor' |
20 | | - |
21 | | - def intercept(self, context): |
22 | | - self.update_params_for_auth(host=context.request.host, path=context.request.true_path, |
23 | | - method=context.request.method, |
24 | | - headers=context.request.header_params, |
25 | | - querys=context.request.query_params, |
26 | | - auth_settings=context.request.auth_settings, |
27 | | - body=context.request.body, |
28 | | - post_params=context.request.post_params, |
29 | | - service=context.request.service, |
30 | | - ak=context.request.ak, |
31 | | - sk=context.request.sk, |
32 | | - session_token=context.request.session_token, |
33 | | - region=context.request.region) |
34 | | - return context |
35 | | - |
36 | | - @staticmethod |
37 | | - def update_params_for_auth(host, path, method, headers, querys, auth_settings, body, post_params, service, ak, |
38 | | - sk, session_token, region): |
39 | | - if not auth_settings: |
40 | | - return |
41 | | - |
42 | | - for auth in auth_settings: |
43 | | - headers["Host"] = host |
44 | | - if method in ["POST", "PUT", "DELETE", "PATCH"]: |
45 | | - body = json.dumps(body) |
46 | | - else: |
47 | | - body = "" |
48 | | - SignerV4.sign(path, method, headers, body, post_params, querys, |
49 | | - ak, sk, session_token, |
50 | | - region, service) |
51 | | - |
52 | | - |
53 | 11 | def parameters_to_tuples(params, collection_formats): |
54 | 12 | """Get parameters as list of tuples, formatting collections. |
55 | 13 |
|
@@ -239,56 +197,3 @@ def __req_to_params(self, req, prefix="", params=None): |
239 | 197 | params.append((prefix + key, value)) |
240 | 198 |
|
241 | 199 | return params |
242 | | - |
243 | | - |
244 | | -class ResolveEndpointInterceptor(RequestInterceptor): |
245 | | - """SDK通用请求拦截器""" |
246 | | - |
247 | | - def name(self): |
248 | | - return 'volcengine-resolve-endpoint-interceptor' |
249 | | - |
250 | | - def intercept(self, context): |
251 | | - host = context.request.host |
252 | | - scheme = context.request.scheme |
253 | | - if not host: |
254 | | - service = context.request.resource_path.split('/')[3] |
255 | | - endpoint_resolver = context.request.endpoint_provider.endpoint_for( |
256 | | - service, context.request.region) |
257 | | - context.request.host = endpoint_resolver.host |
258 | | - prefix = endpoint_resolver.url_for(scheme) |
259 | | - else: |
260 | | - prefix = scheme + '://' + host |
261 | | - context.request.url = prefix + context.request.true_path |
262 | | - |
263 | | - return context |
264 | | - |
265 | | - |
266 | | -class RuntimeOptionsInterceptor(RequestInterceptor): |
267 | | - """SDK通用请求拦截器""" |
268 | | - |
269 | | - def name(self): |
270 | | - return 'volcengine-runtime-options-interceptor' |
271 | | - |
272 | | - def intercept(self, context): |
273 | | - opt = context.request.runtime_options |
274 | | - if not opt: |
275 | | - return context |
276 | | - |
277 | | - context.request.ak = opt.ak if opt.ak is not None else context.request.ak |
278 | | - context.request.sk = opt.sk if opt.sk is not None else context.request.sk |
279 | | - context.request.session_token = opt.session_token \ |
280 | | - if opt.session_token is not None else context.request.session_token |
281 | | - context.request.region = opt.region if opt.region is not None else context.request.region |
282 | | - context.request.scheme = opt.scheme if opt.scheme is not None else context.request.scheme |
283 | | - |
284 | | - if opt.connect_timeout is not None or opt.read_timeout is not None: |
285 | | - context.request.request_timeout = Timeout( |
286 | | - connect=opt.connect_timeout if opt.connect_timeout is not None else -1, |
287 | | - read=opt.read_timeout if opt.read_timeout is not None else -1, |
288 | | - ) |
289 | | - |
290 | | - if opt.endpoint_provider is not None: |
291 | | - context.request.endpoint_provider = opt.endpoint_provider |
292 | | - context.request.host = None |
293 | | - |
294 | | - return context |
0 commit comments