基于浏览器的上传到 Amazon S3?

Posted

技术标签:

【中文标题】基于浏览器的上传到 Amazon S3?【英文标题】:Browser Based Uploads to Amazon S3? 【发布时间】:2010-11-17 05:25:17 【问题描述】:

Amazon 提供了有关如何编写通过 html POST 直接发布到 Amazon 的 S3 服务的表单的说明。 但是,他们对如何创建一个简单的表单直接上传到 S3 存储桶不是很清楚,并且从未给出实际的示例 html 文件...

是否有可以查看示例代码的好示例?

【问题讨论】:

这里的可下载示例有一个很好的 php 类,用于创建和签署策略(表单所需的“策略”和“签名”字段)。 aws.amazon.com/code/1618?_encoding=UTF8&jiveRedirect=1 【参考方案1】:

这是来自上述文档的一段 html 代码。我认为这是不言自明的,但如果您遇到任何麻烦,请告诉我。

  <form action="http://johnsmith.s3.amazonaws.com/" method="post" enctype="multipart/form-data">

    Key to upload: <input type="input" name="key" value="user/eric/" /><br />

    <input type="hidden" name="acl" value="public-read" />

    <input type="hidden" name="success_action_redirect" value="http://johnsmith.s3.amazonaws.com/successful_upload.html" />

    Content-Type: <input type="input" name="Content-Type" value="image/jpeg" /><br />

    <input type="hidden" name="x-amz-meta-uuid" value="14365123651274" />

    Tags for File: <input type="input" name="x-amz-meta-tag" value="" /><br />

    <input type="hidden" name="AWSAccessKeyId" value="15B4D3461F177624206A" />

    <input type="hidden" name="Policy" value="POLICY" />

    <input type="hidden" name="Signature" value="SIGNATURE" />

    File: <input type="file" name="file" /> <br />

    <!-- The elements after this will be ignored -->

    <input type="submit" name="submit" value="Upload to Amazon S3" />

【讨论】:

感谢亚历克斯的留言。我得到它的工作。你知道这是否可以使用 swfupload 来实现?如果是这样,我可以在任何地方获得任何示例代码吗?我试过谷歌搜索,但没有运气 嗨,我只是想问一下是否可以仅使用临时凭据在 s3 中上传?【参考方案2】:

Browser-Based Uploads Using POST to Amazon S3

【讨论】:

是的,获胜答案中的亚马逊说明是我遇到的问题。【参考方案3】:

current documentation for POST on S3 解释得很好。 (这个帖子有点过时了)

【讨论】:

【参考方案4】:

有一个使用 swfupload 的非常基本的上传实用程序。 https://github.com/cyberbuff/ZenS3

免责声明:我开发了它。

【讨论】:

以上是关于基于浏览器的上传到 Amazon S3?的主要内容,如果未能解决你的问题,请参考以下文章

通过 iframe 上传 Amazon S3

ios amazon s3 上传视频文件

从客户端浏览器直接上传 Amazon S3 文件 - 私钥泄露

amazon s3 - 图像下载而不是在浏览器中显示

允许使用 Amazon S3 的 OPTIONS HTTP 方法

s3-amazon 图像 CORS 问题(仅在 5-8 小时后发生在少数浏览器中)