问题标签 [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 投票
2 回答
1596 浏览

amazon-s3 - 使用我自己的域/子域生成 AWS S3 PreSigned URL

我正在使用适用于 .NET 的 AWS 开发工具包,目前正在为我的 S3 存储桶生成预签名 URL。

我目前得到的网址就像https://{bucketname}.s3.amazonaws.com/{FileAndQueryParameters}

我正在寻找的是类似的东西https://{MyDomainName}/{FileAndQueryParameters}

我已经尝试用我自己的 CNAME 指向替换第一个 url,{bucketname}.s3.amazonaws.com但我得到了一个明显的

任何想法如何做到这一点?


顺便说一句,这是我现在使用的代码:

0 投票
1 回答
1609 浏览

google-cloud-storage - 通过签名 URL 上传到 Google Cloud Storage - 对象不可公开读取

我跟进了教程,允许使用签名 URL 将文件从 GWT 前端直接上传到 Google Cloud Storage。我通过指定工作得很好的内容类型扩展了 Java 示例。然后,我看到以这种方式上传的文件无法公开阅读。为了让这个工作我试过:

  • 我已经为新上传的对象设置了默认 ACL gsutil defacl set public-read gs://<bucket>。再次上传文件 - 不走运,仍然不可见。
  • 然后尝试直接在该对象上设置 ACL,gsutil acl set public-read gs://<bucket>/<file>但它给了我AccessDeniedException: 403 Forbidden。这是有道理的,因为 gsutil 使用我的 Google 帐户进行了身份验证,并且使用服务帐户创建了签名 URL,并且它是 P12 密钥。
  • 我尝试在上传阶段设置 ACL,因此添加了"x-goog-acl:public-read\n"规范化扩展标头和适当的查询字符串参数以通过签名检查。该死的,还是没有运气!

我的假设是我使用的这个扩展头可能是错误的?然后根据文档private,默认情况下,所有经过身份验证的 GCS 请求都将应用 ACL。

无论如何 - 为什么当我以项目所有者身份登录时,我无法从 Google 控制台公开读取这些文件?我可以为通过控制台上传的所有文件这样做(我知道在这种情况下所有者是项目所有者而不是服务帐户)。

我做错了什么?我怎样才能让任何人都可以公开阅读它们?

谢谢指教!

0 投票
1 回答
192 浏览

ajax - 如何让 Amazon Signature 4 预签名 URL 与 Ajax 一起使用?

我可以生成一个有效的预签名 URL 来列出 S3 存储桶的部分内容。

如果我将它粘贴到浏览器中或使用 hurl.it 效果很好

但是,在 jQuery Ajax GET 调用中,签名失败。

我在提琴手中查看了请求,它确实在请求中附加了一个参数,这可能是回调。

我在 hurl.it 中尝试过,它也失败了。对于 Amazon Signature 4 来说,Ajax 添加的额外参数似乎是一个阻碍。

我会将它传递给我的服务器进行签名,但不幸的是 Ajax 是事后的,所以 AFAIK 无法提前指定回调参数。

奇怪的是使用 C# SDK 生成一个预签名的 URL,这个额外的参数在 Ajax 中不是问题。但不幸的是,SDK 没有提供我所知道的用于生成预签名 URL 以列出存储桶内容的机制。只是为了得到一个对象。

所以预签名的 URL 不是问题。据我所知,标题也不是。似乎它希望所有查询参数都与我签署的内容相匹配。

我已经在这里待了将近 2 天,到目前为止我还很接近。

非常感谢有经验的 s3 / ajax 用户提供的任何见解。

谢谢!

0 投票
2 回答
5801 浏览

authentication - HTTP 授权标头和查询字符串参数之间的区别

当我阅读有关与交互的信息时Amazon S3,我开始知道请求身份验证以Amazon AWS两种方式完成

  1. HTTP 授权:使用 HTTP 授权标头是提供身份验证信息的最常用方法
  2. 查询字符串参数:当您想完全在 URL 中表达请求时,使用查询参数对请求进行身份验证非常有用。此方法也称为预签名 URL。

问题是在哪种情况下我应该更喜欢一种方法而不是另一种方法。这两种认证方式有各自的优缺点吗?作为开发人员,通过使用query string parameters方法,我可以预签名 URL,使最终用户可以Amazon S3通过在 Web 浏览器中输入预签名 URL 来临时访问资源。我可以使用HTTP Authorization方法来实现相同的目标吗?如果是这样,哪种方法更好用,它们各自的局限性是什么?

0 投票
2 回答
18854 浏览

php - 创建亚马逊 aws s3 预签名 URL PHP

根据此链接http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html,我可以轻松创建一个预签名链接,只需将生命周期添加到 getObjectUrl

但是我得到一个普通的 url,你知道,没有 awsaccesskeyid 和 expires 参数,

这是我的代码:

编辑:我有 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 作为环境变量

我的回声看起来像:

https://s3-us-west-1.amazonaws.com/imagenesfc/NASimagenes/codigoBarraBoleto/1001000098.png

怎么了?

0 投票
1 回答
1421 浏览

cordova - AWS S3 签名的 url 编码结果“SignatureDoesNotMatch”

我正在使用cordova文件传输使用签名的url从aws s3下载文件,因为cordova filetransfer对uri进行编码,签名中的“%”被转换为“%25”,因此导致签名不匹配

0 投票
0 回答
507 浏览

php - Amazon S3 和预签名 URL php 的 SignatureDoesNotMatch 错误

我正在尝试使用 php 从 S3 获取对象的预签名 URL。我不断收到 SignatureDoesNotMatch 错误。下面是我的代码。

然后,我返回了格式正确的 url,但是,当我尝试使用来自第三方应用程序的 URL 发布照片时,我收到以下错误 SignatureDoesNotMatch 错误。关于我在这里做错了什么的任何想法?

谢谢!

0 投票
2 回答
2441 浏览

php - 使用适用于 PHP 的 AWS 开发工具包调用未定义的方法 createPresignedUrl()

我无法使用适用于 PHP 的 AWS 开发工具包创建预签名 URL。我的代码是 -

它给了我下一个错误-

致命错误:在第 103 行的 /Users/waverley_lv/WaverleySoftware/workspace/fox.php.auto/sites/default/behat-tests/util/S3Utility.php 中调用未定义的方法 Aws\Command::createPresignedUrl()

0 投票
3 回答
12497 浏览

javascript - AWS 开发工具包预签名 URL + 分段上传

有没有办法通过浏览器使用生成的预签名 URL 进行分段上传?

0 投票
2 回答
651 浏览

ruby-on-rails - Rails Amazon S3 使用 JQuery File Uploader 直接上传

我已经花了几天时间试图完成这项工作。我收到此错误

选项https://bucketname.s3.oregon.amazonaws.com/ net::ERR_NAME_RESOLUTION_FAILED

我在用Version 43.0.2357.130 Ubuntu 14.04 (64-bit)

宝石文件:

application.js(在 jquery 之后):

应用程序.css:

我有一个名为 uploads 的模型,我为它生成了这样的脚手架:

uploads_controller.rb:

_form.html.erb(用于上传):

application.js(最后):

说真的,我能做些什么来解决这个问题?