Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python boto3:生成预先签名的url,该url将提前过期_Python_Amazon S3_Boto3 - Fatal编程技术网

Python boto3:生成预先签名的url,该url将提前过期

Python boto3:生成预先签名的url,该url将提前过期,python,amazon-s3,boto3,Python,Amazon S3,Boto3,我正在使用以下代码生成签名URL: client.generate_presigned_url('get_object', {'Bucket': client.bucket, 'Key': s3_filename}, ExpiresIn=expiry_seconds, HttpMethod='GET') 这将生成一个如下所示的URL: https://[bucket_name].s3.amazonaws.com/[path]?AWSAccessKeyId=[access-key-id]

我正在使用以下代码生成签名URL:

client.generate_presigned_url('get_object',
    {'Bucket': client.bucket, 'Key': s3_filename}, ExpiresIn=expiry_seconds, HttpMethod='GET')
这将生成一个如下所示的URL:

https://[bucket_name].s3.amazonaws.com/[path]?AWSAccessKeyId=[access-key-id]&Signature=[signature]&Expires=1478646479&x-amz-security-token=[long_token_string]
“Expires”时间戳是未来4天(在撰写本文时),但当单击链接时,我得到了“tokenhaseexpired”XML响应。该链接在生成后的几个小时内仍然有效

还有什么我应该看的吗


谢谢

1478646479的到期时间等于
2016-11-08T23:07:59+00:00
,这是在未来,因此生成的到期时间看起来是正确的。(如果生成链接的计算机上的时钟错误,则可能是错误的。)

接下来要检查的是与创建预签名URL的实体(由
AWSAccessKeyId
标识)关联的权限。实际上,URL使用该实体的权限(例如IAM用户、IAM角色、STS凭据)授予对对象的有时间限制的访问权限。如果该实体不再具有访问该对象的权限,则预签名的URL将不再起作用


您可以使用中的
aws s3 presign
命令对预签名URL执行测试。

1478646479的到期时间等于
2016-11-08T23:07:59+00:00
,这是将来的事,因此生成的到期时间看起来是正确的。(如果生成链接的计算机上的时钟错误,则可能是错误的。)

接下来要检查的是与创建预签名URL的实体(由
AWSAccessKeyId
标识)关联的权限。实际上,URL使用该实体的权限(例如IAM用户、IAM角色、STS凭据)授予对对象的有时间限制的访问权限。如果该实体不再具有访问该对象的权限,则预签名的URL将不再起作用


您可以使用中的
aws s3 presign
命令对预签名URL执行测试。

我认为这可能是正确的答案-我目前正在使用IAM角色,但不久将尝试使用标准访问密钥(从安全角度来看,这有点遗憾,但实际上没有选择)。当我有时间测试它时,会将它标记为正确。谢谢我认为这可能是正确的答案-我目前正在使用IAM角色,但不久将尝试使用标准访问密钥(从安全角度来看这有点遗憾,但实际上没有选择)。当我有时间测试它时,会将它标记为正确。谢谢