问题标签 [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.
go - 如何在 Go 中将预签名的 POST 上传到 AWS S3?
我想做一个预签名的 POST 以将文件上传到 AWS S3 存储桶- 这将如何在 Go 中完成?
请注意,这与使用 PUT 进行预签名上传不同。
ruby - 如何在 Ruby 中将预签名的 POST 文件上传到 AWS S3?
我想将预签名的 POST 文件上传到 AWS S3 上的存储桶,该存储桶仅具有以下存储桶策略的公共读取:
创建一个预签名的 URL,允许任何拥有它的人使用 HTTP POST 进行上传,如此处所述。
我已成功使预签名的 PUT 工作,此处描述。即我有适当的凭据,~/aws/credentials
可以完全访问存储桶。
在AWS Ruby SDK中,我发现存储桶有一个PresignedPost,所以我尝试了以下方法:
不幸的是,运行它会导致错误:
我尝试删除该acl
字段,但这会导致另一个错误:
URI 是:https://mytestbucket.s3.eu-central-1.amazonaws.com
有什么问题,我怎样才能让它工作?
谢谢你的帮助!
更新
正如其中一个错误所说,该问题可能是冲突的 acl 和存储桶策略。我希望所有人都能阅读它,并且只能使用预签名的 URL 上传(我假设所有者成为创建 URL 的人)。这就是我认为我设置它的方式。
angularjs - 如何在不知道 Content-Type 的情况下生成 AWS S3 预签名 URL 请求?
我正在服务器端生成一个预签名的 URL 请求,其中包含 GeneratePresignedUrlRequest 的以下参数:bucket
、、key
和。expiration = in 1 hour
method = PUT
在我的 Angular 应用程序中,我正在使用ng-file-upload 上传文件
问题是我总是有403
响应,除非我将文件的类型设置为GeneratePresignedUrlRequest.contentType
.
问题是我无法提前预测用户会选择什么类型的文件(image/png
, image/jpeg
, text/plain
...)。
如何生成一个接受各种类型的预签名 url content-type
?我尝试将其设置为 null,它不断发送 403 错误。
谢谢。
amazon-web-services - AWS S3 在 getSignedUrl 过期后优雅地处理 403
通过过期的 URL 访问 S3 资源时,我试图优雅地处理 403。目前它返回一个 amz xml 错误页面。我上传了一个 403.html 资源,并认为我可以重定向到该资源。
存储桶资源是我的应用程序保存/获取的资产。尽管如此,阅读文档我设置存储桶属性以将存储桶作为静态网页页面处理,并将 403.html 上传到存储桶根目录。除对资源 403.html 的公共 GET 访问外,所有公共权限均被阻止。在存储桶属性、网站设置中,我将 403.html 指示为错误页面。访问http://<bucket>.s3-website-us-east-1.amazonaws.com/some-asset.html
重定向正确http://<bucket>.s3-website-us-east-1.amazonaws.com/403.html
但是,当我使用 aws-sdk js/node 并调用方法getSignedUrl('getObject', params)
生成签名的 url 时,它返回一个不同的主机 url:https://<bucket>.s3.amazonaws.com/
从此方法访问过期资源不会重定向到 403.html。我猜由于主机地址不同,这就是它不会自动重定向的原因。
我还为条件设置了静态网站路由规则
仍然没有重定向签名的网址。所以我不知道如何优雅地处理这些过期的网址。任何帮助将不胜感激。
android - javax.net.ssl.SSLException:写入错误:系统调用期间的 I/O 错误,对等方重置连接
我正在尝试使用 http post call 将视频文件上传到 amazons3。在这里,我首先在 android 上使用 okhttp 从中获取了签名的 url。这工作得很好。后来在这个网址上上传,我使用了 okHttp,后来创建了一个 httpconnection 对象并尝试了它。我尝试上传时不断收到 SSLException 错误。
这是它的错误堆栈-
amazon-web-services - S3 Presigned Upload URL 支持多个区域?
目前我的应用程序可以将图像上传到 APSE1(新加坡)的存储桶,并且我的应用程序主要用于东南亚,所以一切都非常快。我想知道如何支持多个区域?假设我还想让美国的人使用我的应用程序,现在,由于存储桶位置在新加坡,他们的上传速度会很慢。我知道有这个 S3 功能可以跨区域复制数据,但我想知道如何检测用户位置并将预签名的上传 url 获取到该特定用户的最近存储桶?现在我把它硬编码到新加坡......有什么想法吗?谢谢!
image - 通过 JSON api / API 客户端库从 GCS 请求签名 URL
我在 Laravel(作为 api)/AngularJS 项目中使用 PHP 的 API 客户端库,该项目不在谷歌应用引擎上运行。我希望能够通过预签名 URL 访问谷歌云存储 (gcs) 存储桶上的非公共图像 - 我无法弄清楚如何使用 php 客户端生成预签名 URL。基本上我想在谷歌应用引擎上复制谷歌存储工具/服务图像显示的内容,但没有在谷歌应用引擎上运行脚本(例如在谷歌计算或其他云服务器或本地开发服务器上)。
我已经运行了 php 客户端,并且我已经在使用它来生成预签名的上传 url,允许用户上传图像(这已经很难弄清楚)。服务图像尚未工作。
谁能指出我正确的方向?似乎 gcs 附带的大多数功能都绑定到应用程序引擎环境......
任何帮助将不胜感激。
谢谢,一切顺利,托拜厄斯
amazon-web-services - 使用 S3 Presigned Upload URL 上传电影文件
我可以使用预签名的上传 url 成功上传带有 .png 扩展名(图像/png)的文件。但是,当我尝试以相同的方式上传扩展名为 .mov 的视频文件时,我从 Amazon S3 得到 403。我尝试过使用 contentType movie/mov、video/quicktime,但它们都不起作用。当我将文件名更改为 .png 和 image/png 时,电影文件已正确上传。我只需要更改扩展名即可查看...有谁知道是否有 S3 Presigned File 上传支持的文件类型列表?我似乎无法在谷歌上找到任何细节......
我的 s3 存储桶策略:
编辑:这就是我生成我的预签名网址的方式:
所以我已经将 contentType 字符串传递给我的服务器以生成预签名的 url。
php - 使用签名 URL 通过 App Engine 在 GCS 上强制下载
我通过以下方式获取我的文件:
如果我进入$public_link
浏览器,它会在浏览器中显示 PDF。我试图弄清楚如何强制下载此文件。
Google App Engine 只有 60 秒超时,所以恐怕服务功能无法通过 GAE 工作。有没有人有什么建议?
--
编辑
Andrei Volga 之前在这篇文章中的回答建议我使用带有response-content-distribution
标头的签名 URL。
到目前为止,我能够创建一个成功显示文件的签名 URL,但我无法生成一个具有任何类型标题的签名 URL,也就是创建一个将强制下载而不是仅显示它的签名 URL。
这是我到目前为止所拥有的,其中大部分是由 mloureiro 提供的。