gpt4 book ai didi

java - 如何在java中获取签名的url?

转载 作者:行者123 更新时间:2023-12-01 08:57:05 25 4
gpt4 key购买 nike

嗨,我是 amazon s3 和 cloudfront 的新手。我有一个任务,将对象上传到我的存储桶并将 cloudfront url 发送到电子邮件。到目前为止我已经成功完成了上传和下载部分。对于下载,我的网址看起来像“//cloudfront-domain/object-name”。我希望它看起来有点复杂。我浏览过文档,其中说我可以添加日期到期时间,它还会对 json 策略进行 Base64 处理,并且两者都可以在 url 中使用。因此,当我通过 java 应用程序上传对象时,我想为其设置策略并获取签名的 url。如果您有相关示例代码,请分享。谢谢。

最佳答案

So as I am uploading object

有些人对此有误解...该服务不提供签名 URL。您不会“在上传对象时”获得它们。签名 URL 由您的代码生成,生成签名 URL 时无需与服务进行交互。

您通常会在渲染将出现签名 URL 的页面的同时生成签名 URL — 而不仅仅是一次,例如在上传对象时。后者是可能的,但签名 URL 的生命周期是有限的,并且当您轮换签名 key 时就会变得无效。

这是签名 URL 背后的理论。

浏览器发出请求。该服务检查策略文档以验证请求的参数是否确实与策略允许的参数匹配,然后根据策略文档验证签名,以查看它是否被授权遵守该策略。对于给定的保单文档,只有一个可能的正确签名,因此服务会生成应伴随请求的签名,以查看其是否匹配。如果是,则允许操作。由于篡改策略会更改正确的签名,因此签名的 URL 无法被篡改。

documentation解释了签名 URL 的工作原理,并提供了如何生成它们的示例。如果需要,您实际上可以编写自己的代码,因为整个签名过程都有记录。

请注意,如果您使用 //dxxxexample.cloudfront.net/... 形式的链接,而不是 https://dxxxexample.cloudfront.net/... 那么您需要生成签名 URL 以期望 http*://dxxxexample... 而不是 http://...https://...,否则,相同的签名 URL 对于 HTTP 和 HTTPS 都无效。

关于java - 如何在java中获取签名的url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41977056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com