问题标签 [pre-signed-url]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 PostMan 时 Google Cloud 签名的网址“SignatureDoesNotMatch”,但在 Python 中运行良好
嗨,我已经生成了一个签名的 url 来上传到谷歌云存储桶,但是当我尝试 PUT 时,我得到 SignatureDoesNotMatch,奇怪的是只有 PostMan。当我在 Python 中尝试相同的 Url、queryParams、Headers 时,我能够正常上传。
这是我在 PostMan 中尝试过的请求
网址:https: //storage.googleapis.com/ ****-171020.appspot.com/swift.txt?GoogleAccessId=storageadmin@****-171020.iam.gserviceaccount.com&Expires=1503755879&Signature=tlcHVRwbvMSxaIB6oO/TDXRDczXGFSE6ZXHmZbtCUMhjpos36/ 1KdKV7Lbmm7XtKsq42SFNksUIZLplyAMpkG8aMBuydeoJd+kvebLxK2k+AX8Xr2VVf5Aq/vVJrPGGYGD0iEN+bY264NIFbyJnlm0pthCVGtB5YqZJadCFDwPFWqi04312Jzzen1CXDY+saY0BabmXaZeCzINz7kV+aq0AJoS8taW0uqboYc1o4gCA6OPAswMr1E840a+II4HqkeOWcv7PiHEPdw/sgH3PR+TkGmjTAd9f8H6zJIFaT8DLbtsl7t3iAUM7Fvdtc9pGQt6KT0qUm9z3XfPEjP8OsTA==
标头:Content-MD5:7Qdih1MuhjZehB6Sv8UNjA== Content-Type:text/plain
这是有效的 Python 程序:
请帮助我了解这里发生了什么。谢谢!
node.js - NodeJS:签名的 Cloudfront S3 网址,未过期
我使用aws-cloudfront-sign签署 S3 url 以分发私有内容。我的代码:
我可以收到签名的 url,并在浏览器中打开它。
问题:在我分配的 30 秒后,签名的 url 链接仍然可用,没有过期。
任何建议表示赞赏
php - Amazon S3 - 如何检查预签名 URL 是否已过期?
如果我生成的预签名 URL 已过期,我是否应该get_headers()
(在 PHP 中)查看是否403 Forbidden
引发错误,否则使用相同的 URL?或者这是一个坏主意,因为它是一个不必要的 GET 请求?我是否应该每次都重新生成一个新的预签名 URL?我有点困惑,因为似乎没有太多关于此的信息。
amazon-web-services - 使用未签名 URL 访问公共读取 S3 对象时,我是否应该收到 Cloudfront 'MissingKey' 错误?
假设我正在构建一个 Dropbox 克隆:Filebox。我使用 S3 存储所有用户的文件,并且使用 Cloudfront 作为我的 CDN。
因此,我有一个受限制的 S3 存储桶 ( files.filebox.com
),其存储桶策略只s3:GetObject
允许我通过 Cloudfront 创建的源访问身份。这会强制所有“文件”请求通过 Cloudfront,并禁止任何人通过 S3 URL 访问文件。
files.filebox.com 的存储桶策略
意外的行为
假设,为简单起见,我将所有文件都存储为public-read
.
所以这个 URL 应该可以工作:
https://files.filebox.com/<userID>/some-file.txt
但这应该导致 403:
https://s3.amazonaws.com/files.filebox.com/<userID>/some-file.txt
但我看到了相反的结果。S3 URL 工作正常,但files.filebox.com
通过 Cloudfront 的 URL 引发MissingKey
错误。
该files.filebox.com
URL确实有效,但前提是我签署了该 URL,即使对于具有 ACL 的对象也是如此public-read
。
问题
鉴于存储桶策略仅允许s3:GetObject
CF OAI,即使对象具有public-read
ACL,S3 URL 是否不应该失败并显示 403?
除了模糊的语言之外,我在文档中找不到任何关于此的信息,这似乎表明对于未通过 Cloudfront进行的任何请求,受限存储桶应为 403。
当我将对象的 ACL 设置public-read
为时,即使在受限制的存储桶上,是否也不需要签署 Cloudfront URL?
我是否需要在Statement
我的存储桶策略中添加另一个允许未签名 URL 访问public-read
对象的策略?
我尝试了这个,但没有奏效。我Statement
什至不知道如何写这样的......
如何真正拒绝通过 S3 URL 发出的任何请求?
我想为通过 S3 URL 的任何请求抛出 403,即使是 ACL 为public-read
.
python - aws 预签名 url - 验证预签名 url 给出 SignatureDoesNotMatch 错误
我有一个 python 脚本来生成一个预签名的 url 并验证它。该脚本适用于我的笔记本电脑,但不适用于我同事的笔记本电脑。错误消息说要检查 AWS 秘密访问密钥和签名方法。AWS 访问/密钥是有效的,可用于访问其他 AWS API。如何进一步排除故障?
错误响应:-
linux - 无法从 linux 终端获取文件
我正在尝试从 S3 存储桶下载文件。URL 的链接是一个预签名的 url。我可以通过网络浏览器下载 S3 链接,但不幸的是它不适用于 linux 终端。下面是示例链接。
这是我在 wget 之后得到的回应
有没有其他方法可以从终端下载上述 URL?
ruby - 上传到预签名 URL 时从 S3 获取 RequestTimeout
对于小于 5Mb 的小文件,通过预签名 URL 上传到 S3 工作正常。当我尝试上传比这更大的东西时,我似乎400 Bad Request
从 S3收到RequestTimeout
了错误的响应。
我可以使用 curl 重新创建它:
签名代码如下所示:
请注意,对于小于 5Mb 的文件,这一切都可以正常工作,随着文件大小的增加,故障会更频繁地发生。有没有人看到这些问题并解决了它们?
documentviewer - 签名的 url 不适用于 Microsoft 在线文档查看器
转到此页面: https ://products.office.com/en-us/office-online/view-office-documents-online
如果您将办公文档的 url(例如http://ieee802.org:80/secmail/docIZSEwEqHFr.doc)粘贴到输入框中并单击“创建 url”,它将生成一个 url 允许您查看文件在浏览器中。
它会在 15 分钟后过期,所以当任何人看到它时它一定已经过期了,但我保证它是一个有效的 url,如果你将它粘贴到浏览器中,它会下载该文档。这大约在 2 个月前工作,但现在不工作,我想知道微软是否改变了什么,有人知道原因吗?
amazon-s3 - 使用预签名 URL 从 S3 下载时出错
我成功地生成了预签名的 GetObject URL。然后将生成的 URL 粘贴到浏览器上以下载请求的项目。到目前为止,我能够从弗吉尼亚和新加坡检索对象。但是在俄亥俄州,我收到以下错误。“您提供的授权机制不支持,请使用AWS4-HMAC-SHA256。”
amazon-s3 - 使用 com.amazonaws:aws-java-sdk 1.11.18 的意外 v4 签名 URL
我们正在使用(com.amazonaws:aws-java-sdk 版本 1.11.18)创建亚马逊 S3 签名的 url -
我们希望得到一个签名的 url,其中包含一个名为“signature”(v2 签名)的查询参数。
我们注意到,在我们的服务器中,一些请求会导致 v4 签名——我们意外地得到一个“x-amz-signature”查询参数作为签名 url 的一部分。
一旦开始 - 对于相同的请求 s3 对象,它可以在服务器上重现。但是,对其他对象进行签名的请求仍将使用 v2 进行签名。在损坏的服务器上重新启动 tomcat 服务“修复”了该问题。
知道什么会导致库开始使用 v4 对某些对象进行签名吗?