问题标签 [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.

0 投票
1 回答
1229 浏览

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 程序:

请帮助我了解这里发生了什么。谢谢!

0 投票
0 回答
602 浏览

node.js - NodeJS:签名的 Cloudfront S3 网址,未过期

我使用aws-cloudfront-sign签署 S3 url 以分发私有内容。我的代码:

我可以收到签名的 url,并在浏览器中打开它。

问题:在我分配的 30 秒后,签名的 url 链接仍然可用,没有过期。

任何建议表示赞赏

0 投票
3 回答
7851 浏览

php - Amazon S3 - 如何检查预签名 URL 是否已过期?

如果我生成的预签名 URL 已过期,我是否应该get_headers()(在 PHP 中)查看是否403 Forbidden引发错误,否则使用相同的 URL?或者这是一个坏主意,因为它是一个不必要的 GET 请求?我是否应该每次都重新生成一个新的预签名 URL?我有点困惑,因为似乎没有太多关于此的信息。

0 投票
1 回答
172 浏览

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.comURL确实有效,但前提是我签署了该 URL,即使对于具有 ACL 的对象也是如此public-read


问题

鉴于存储桶策略仅允许s3:GetObjectCF OAI,即使对象具有public-readACL,S3 URL 是否不应该失败并显示 403?
除了模糊的语言之外,我在文档中找不到任何关于此的信息,这似乎表明对于未通过 Cloudfront进行的任何请求,受限存储桶应为 403。

当我将对象的 ACL 设置public-read为时,即使在受限制的存储桶上,是否也不需要签署 Cloudfront URL?

我是否需要在Statement我的存储桶策略中添加另一个允许未签名 URL 访问public-read对象的策略?
我尝试了这个,但没有奏效。我Statement什至不知道如何写这样的......

如何真正拒绝通过 S3 URL 发出的任何请求?
我想为通过 S3 URL 的任何请求抛出 403,即使是 ACL 为public-read.

0 投票
1 回答
609 浏览

python - aws 预签名 url - 验证预签名 url 给出 SignatureDoesNotMatch 错误

我有一个 python 脚本来生成一个预签名的 url 并验证它。该脚本适用于我的笔记本电脑,但不适用于我同事的笔记本电脑。错误消息说要检查 AWS 秘密访问密钥和签名方法。AWS 访问/密钥是有效的,可用于访问其他 AWS API。如何进一步排除故障?

错误响应:-

0 投票
2 回答
2705 浏览

linux - 无法从 linux 终端获取文件

我正在尝试从 S3 存储桶下载文件。URL 的链接是一个预签名的 url。我可以通过网络浏览器下载 S3 链接,但不幸的是它不适用于 linux 终端。下面是示例链接。

https://prod-04-2014-tasks.s3.amazonaws.com/snapshots/054217445839/rk12345-414a7069-c29e-42b7-8c46-2772ef0f572d?X-Amz-Security-Token=FQoDYXdzELz%2F%2F%2F% 2F%2F%2F%2F%2F%2F%2FwEaDJxH5NWcgw1QYX4nXCK3AwhdbSSQNGC8Ph4Uz7gqhfJssILaqIA008aYoH4Ycs7JMs92wE2Rg4h6uQJ7TW3mYyiBJgctM4Ku%2FzpxFdBM0qBnMCEhCMxnIUkYoaQOMN1EJrRzKkAXPlhjn2dAiWMmrCQ189C5GyCDkAJHQeRkBu%2B9hH4tWhnBuSCTRzcdftu04ArNDgJ5jIy0F5cCVOAuBvZEsS4Ej1gHFJW5GY2PDzaXyktQGvz9Uk5PgPo11PPWUlbPet9ASCvaUB5z7o%2Bwg9w9Ln8wV4oMnOFT4zG4toYoArp9lP61vCkJjIvCBU%2BjA9Lq0F05N%2FVII0zoD1rft2hX42nRTpqH%2Fk2iVyafK5avikgHRSJREYjh3Mm83%2BrdiR9ZTFSpqK5Pcu2vfO%2FlgyDRwdEgPXNJuxcmzSNI7Z0Zm3l95%2B7rNadJ4FvQ8NP3u0xEz3OeJhK79%2FnnMd1Ft5doOSeO8EKY5p3ltNw9mDtOWbzamhQD34e3EgxAcWgbqU0vCjxKEb8vsvSf06QaGQ6XX1QKH5hMEsT8%2B%2Bm%2FJ9t4Xf8L3%2FeympS%2BvJfPttobhXtzJSui2G7lLjaEkoAftl6ftIVkCQEovoHczwU%3D&X-Amz-算法=AWS4-HMAC-SHA256&X-Amz-Date=xxxxxxx&X-Amz-SignedHeaders=xxxxxx&X-Amz-Expires=600&X-Amz-Credential=xxxxxxxxxxx%2F20171030%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-签名=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

这是我在 wget 之后得到的回应

有没有其他方法可以从终端下载上述 URL?

0 投票
0 回答
1002 浏览

ruby - 上传到预签名 URL 时从 S3 获取 RequestTimeout

对于小于 5Mb 的小文件,通过预签名 URL 上传到 S3 工作正常。当我尝试上传比这更大的东西时,我似乎400 Bad Request从 S3收到RequestTimeout了错误的响应。

我可以使用 curl 重新创建它:

签名代码如下所示:

请注意,对于小于 5Mb 的文件,这一切都可以正常工作,随着文件大小的增加,故障会更频繁地发生。有没有人看到这些问题并解决了它们?

0 投票
1 回答
387 浏览

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 允许您查看文件在浏览器中。

但是,这不适用于签名的网址: https://test-sam-sydney.s3.amazonaws.com/561/smartlibs/141/entries/16288/files/32683/aaa.doc?AWSAccessKeyId=ASIAI37CPWZSXOXMYGWA&Expires=1509595541&Signature=czEeo7dko8%2Fj96AYX9HTK5dV8IU%3D&x-amz-security-token=FQoDYXdzEP3%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDJ%2FRBcrYuZWaVCkhTSKoBvKIryDttKvnIMTdcNvRwlURajDqOsmDn2AGGWfuh%2BfXAZ9HkMHbP7boPcPaz2n1YG0HibDeuVp1haOBqxjylleC0XtSCIYF6zOGGP9TYAoncUx29z3NDL4tVdfkvxus8kV8sCuMPleiocAkIYeWnfTAGIc%2B7bDzx4DlkOaBtmYpY5XFWGJTGhS7kN%2Bv8qYE53gbWI0yv6w7SDC8bREW8EgH0Nt4Zi5i87psPgjAqmW9JypIcUdIKY%2FhZ7%2BE9Cmpvvqwt2t8aYFAT2X5FVgTQbImFcJrRTjx3kDNJgrI6TVpoC1kKt%2B15EBjYYWP9XECfFGeID%2F3MqluU4XBagHZ45vI5phska6nLyyWHq0%2FgGK06lLW%2BPJpCl% 2Bg2u2XEy%2B%2FaqoNhoWNKeo7YQ9IP9LS2rkqZJ5Wm4RzD6VDV0waUDOOCR0iwQl9C8bkhFLxi6cYv6MViO5EYxZygaxmtKh%2FVC1BcoRL4XRq6WP%2BHIQiVaA67PXfyMspoGk3Wn31zwhAGsRRi2%2Fh5kEiJ7wXw%2FYCppokL7VBogEDIyuv5HgXtOLsPvMsEdbwEvNNLYYvTMmby911%2FChbzLVgn7I4ui1C5eqwJosZWyjwbQWrwzvNPYi9xqty%2B9Fja3YlmMUUjBe5eDkKzPEUDGZ28beckUU%2FhDptseaZDehmmsODwQd5AFmJ0MUdXH6E333N3rgLo%2BvmSptLrRcd%2BIfpiV8cNdMyXsK3k2%2FSblpRA5rMsP4gbMiveXMmHGtcsonjMipuyjWReWb5z5S%2BcIeeZLjOVBDtqyYdixDsqj62q9K5qGRPiKBeWHO6IP9IzqM4EY8GfKpVy2GEE30tdx9MB94pQmQSMNEUigREYuELKvrS4kbUXiTNZ635pqxEDeBq%2FHP3iOlodbvqIEFeS0iG2X46Sc%2FZ1sixPW1umvNkNJCABjHcPvupIWwzqdiA6N6V%2FTb%2FVZHbBBHqkv4quBn8xGm3LORiuEsXRoRTVMeor2sdOu6nhJuAHz9IpdPvnqQ4mExsBWOY4lMD5sOZ1PoGuDThbcDFc4LfBK96jRC8KCF%2BEiP1FUjVhtw4nkMhpq0ojazqzwU%3D

它会在 15 分钟后过期,所以当任何人看到它时它一定已经过期了,但我保证它是一个有效的 url,如果你将它粘贴到浏览器中,它会下载该文档。这大约在 2 个月前工作,但现在不工作,我想知道微软是否改变了什么,有人知道原因吗?

0 投票
1 回答
5188 浏览

amazon-s3 - 使用预签名 URL 从 S3 下载时出错

我成功地生成了预签名的 GetObject URL。然后将生成的 URL 粘贴到浏览器上以下载请求的项目。到目前为止,我能够从弗吉尼亚和新加坡检索对象。但是在俄亥俄州,我收到以下错误。“您提供的授权机制不支持,请使用AWS4-HMAC-SHA256。”

0 投票
1 回答
256 浏览

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 对某些对象进行签名吗?