[英]Amazon S3 validate pre signed url
我给客户一个预签名的 url 用于 put_object 方法:
服务器:
s3_client = boto3.client('s3')
res = s3_client.generate_presigned_url('put_object', Params = {'Bucket': 'my-bucket', 'Key': 'filepath/inside-bucket/filename.json'}, ExpiresIn = 3600)
现在,如果客户端将预签名的 url 发送回服务器,服务器如何验证 url 是否有效(签名)?
理想情况下,我想调用 s3 服务 function 来做到这一点。
如我所见,无法为多种方法(head_object + put_object)生成预签名的 url
我的用例是:
我知道我可以使用 lambda s3 触发器,但这会使进程异步,更难知道 object 何时处理完成。
预签名 URL 仅包含请求中包含的参数的哈希签名,并使用密钥签名。
如果您有请求中显示的访问密钥的秘密密钥,您可以自己创建散列签名并验证签名是否正确(如果散列匹配)。
有可用代码: StackOverflow:AWS S3 presigned urls with boto3 - Signature mismatch
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.