gpt4 book ai didi

php - 直接浏览器上传到 Amazon S3

转载 作者:行者123 更新时间:2023-12-04 22:00:51 25 4
gpt4 key购买 nike

我正在尝试了解如何使用 XHR 执行浏览器直接上传到 Amazon S3。我正在使用一些预制代码来创建签名并执行上传。我所要做的就是输入我的 S3 安全凭证。 (为了它的值(value),我想使用 PHP 进行策略签名)。

我已经将代码复制到我的 GitHub 帐户,您可以在这里找到它:https://github.com/keonr/direct-browser-s3-upload-example

如自述文件所示,我已将我的 S3 存储桶 CORS 设置为允许所有来源,如下所示:

<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>PUT</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Content-Type</AllowedHeader>
<AllowedHeader>x-amz-acl</AllowedHeader>
<AllowedHeader>origin</AllowedHeader>
</CORSRule>
</CORSConfiguration>

现在,当我尝试执行文件上传时,脚本返回 XHR Error 并且我的浏览器的错误控制台给我一个标准的 CORS 错误,说我的 Origin 现在允许该 XHR 请求.我已经尝试了我能想到的一切。我已将 * 通配符更改为发出请求的实际域,以允许 * 通配符允许 header 。似乎没有任何效果。它继续产生 CORS 错误。

任何人都可以帮助我完成这项工作并成功完成直接浏览器上传到 S3 吗?我不在乎通过什么方式,我只需要能够完成它。另外,请记住,我是 S3 的新手,所以说明越明确越好。

谢谢!

最佳答案

尝试为 AllowedHeader 添加通配符并允许所有方法,如下所示:

<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

直接上传到 Amazon S3 的良好起点是:

对于js: http://www.designedbyaturtle.co.uk/2013/direct-upload-to-s3-with-a-little-help-from-jquery/

对于 PHP: http://birkoff.net/blog/post-files-directly-to-s3-with-php/

或者,如果您正在寻找开箱即用的解决方案,请查看 Plupload

希望这能让您入门!

关于php - 直接浏览器上传到 Amazon S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18590034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com