问题标签 [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 回答
123 浏览

javascript - 我是否必须为 AWS S3 上的每个图像获取签名 URL?

假设我有一个像 Instagram 这样的社交媒体应用程序。我是否必须为每张图片获取签名 URL?每个用户看到 100 张图片,这是否意味着它必须为每个用户获取 100 个 singed URL?

0 投票
1 回答
61 浏览

node.js - How to pipe a s3 getSignedUrl

I'm trying to pipe a signed url of an image I got stored in a bucket in S3.

When using regular "getObject" method I can do it like this

But when I try with getSignedUrlPromise, I can't use the createReadStream method because it says it's not a function.

How can I achieve that with getSignedUrl or getSignedUrlPromise?

0 投票
0 回答
18 浏览

amazon-web-services - 共享通过 AWS CloudFront 提供的媒体的首选方法,通常受签名 URL 保护

我已经设置 AWS CloudFront 来提供位于 S3 存储桶中的媒体文件。在保护这个内容方面,我做的第一件事是使用 uuidv4 字符串命名媒体文件,并且只允许公众阅读媒体文件(即只执行 getObject() 命令):必须知道要检索它的文件的名称。但是,在阅读 AWS 文档时,很明显他们非常强烈建议不要允许公共访问,而是通过策略或控制列表来实施控制。所以,我最终实现了签名的网址。

但是,有些人希望在社交媒体、信使甚至电子邮件中与他们的朋友分享内容。虽然某些或所有社交媒体网站可能只是复制人们共享的图像/视频/音频(不过,我还没有对此进行研究),在这种情况下,提供一个有效期较短的签名 URL 就可以了。但是,这仍然会留下一些场景——最明显的是电子邮件——当与之共享内容的人尝试在未来(可能是明年)访问它时,签名的 Url 会出现问题。我认为有两个明显的解决方案:

  1. 将共享媒体文件复制到可公开阅读的单独目录中。
  2. 仅对于共享媒体,而不是提供 CloudFront 签名的 Urls,而是直接向我们的服务器提供不受保护的 Urls,然后服务器从 S3 存储桶中获取媒体文件。

第一个选项似乎很浪费,除非可以从公共可读的目录中为共享媒体文件创建符号链接或类似的东西。我不知道这是否可行,但这似乎是一种可能性。第二个选项应该可以正常工作,但如果所有媒体都可以通过 CloudFront 交付,那就更好了。

也许有人们经常使用的首选策略或最佳实践。我将不胜感激对此类策略的任何见解。提前致谢。

0 投票
1 回答
140 浏览

node.js - NodeJS - 谷歌云存储签名 URL 的 CORS 问题

我想让艺术家客户使用Signed URLs将图像上传到 Cloud Storage 。

以下后端脚本用于获取签名的 url,它位于 Google Cloud 负载平衡器后面:

(这(负载平衡器)会影响什么吗?)

CORS设置:

Next.js API 端点来获取签名的 url:

Next.js 前端代码放入签名的 url:

  • 观察到的行为:访问已被 CORS 策略阻止。控制台日志upload 4和签名的 url,但签名的 url 不起作用。

  • 预期行为: put 请求将正常工作。

0 投票
1 回答
34 浏览

php - 一旦用户提交了对该特定链接的响应,如何使链接失效或禁用?

目前正在从事个人项目并解决在提交表单时将签名的 URL(操作链接)通过电子邮件发送给用户的场景,一旦用户打开该链接并提交该 URL 中的表单,我正在努力实现和面临的目标开发中的问题是,如果有人在提交表单后再次打开该链接,他们会显示一个屏幕,可能会说您的回复已提交。任何关于这种功能的提示都可以使用 Laravel 构建,或者我应该搜索哪个主题可以让我理解如何解决这些场景。任何建议或提示将不胜感激。谢谢。

0 投票
0 回答
6 浏览

signed-url - 是否可以为文件夹生成一个签名 URL 并将多个文件上传到其中?

是否可以使用“{gcs_domain}/anybucket/folder1/?{gcs_headers}”之类的 GCS 签名 url 上传多次不同的文件(有一个或多个请求,没关系)?

最后给出:-folder1 --file1.txt --file2.txt ...

还是 Signed Url 与一个对象严格配对?

我查看了 Signed Url 文档,但没有找到此信息。

谢谢。

0 投票
1 回答
36 浏览

php - 使用 PHP (Google Cloud) 手动删除签名 URL

我想知道是否有一种方法可以从 Google Cloud 的 PHP 库中手动销毁签名的 URL,或者在生成中指定一些参数来指定“第一次打开链接时,销毁它”。

此时我发现只有一个“时间”可以从签名 URL 的生成中设置,没有别的。

谢谢

0 投票
0 回答
19 浏览

amazon-web-services - 使用自定义策略访问云端签名 url 时访问被拒绝

我正在尝试使用 Cloudfront 分发控制对我在 s3 中的文件的访问,并使用签名 URL 限制查看器访问,我使用自定义策略生成签名 url 以控制使用源 ip 的访问,一切正常,不包括 ip 的条件,当我添加源 IP 的条件我被拒绝访问,因为没有这个条件它可以正常工作我知道问题出在这个特定条件上。

我尝试将 all 用于 IP 源:

但还是一样,这是我的自定义政策,

如果我删除有限的查看者访问权限,我可以访问该资源,任何帮助将不胜感激。

0 投票
0 回答
52 浏览

google-cloud-platform - 谷歌云服务,匿名调用者没有 storage.objects.get 访问谷歌云存储对象,私有 URL 访问被拒绝

我正在使用谷歌云存储将图像存储在一个私人文件夹中,我想在我的网站上显示它们。我在自己的程序中遵循了这个Signed_URL 的文档来实现我的目标。

经过几次测试,除了下面这张图片,我无法显示其他任何内容。 拒绝访问

我为包含“storage.objects.get”权限的服务帐户创建了一个角色,并将此角色添加到我的服务帐户中。所以,我确实认为我生成的 URL 无法识别我的服务帐户。

欢迎任何建议,提前谢谢你,

真挚地,

泰奥。