in alibabacloud_oss_v2/presigner.py [0:0]
def _deserialize_output(client: _SyncClientImpl, op_output: OperationOutput) -> PresignResult:
result = PresignResult()
result.method = op_output.http_response.request.method
result.url = op_output.http_response.request.url
result.expiration = op_output.op_metadata.get('expiration_time', None)
result.signed_headers = {}
_options = getattr(client, '_options', None)
if _options:
s = getattr(_options, 'signer', None)
if s:
for k, v in op_output.http_response.request.headers.items():
if s.is_signed_header(k):
result.signed_headers[k] = v
if result.expiration is not None and isinstance(s, SignerV4):
now = datetime.datetime.now(datetime.timezone.utc)
if (result.expiration - now) > datetime.timedelta(days=7):
raise exceptions.PresignExpirationError()
return result