【发布时间】:2011-06-06 02:01:50
【问题描述】:
【问题讨论】:
-
虽然已经回答了这个问题,但我首先担心的是,通过将所有 S3 详细信息放在客户端上,怀有恶意的用户肯定会利用这些信息。因此,考虑到其他人可能有同样的担忧,这里有一篇旨在解决这些问题的文章:codeonaboat.wordpress.com/2011/04/22/…
【问题讨论】:
除了bucket、key和acl的条件外,策略文档还必须包含name、Filename和success_action_status的规则。例如:
["starts-with", "$name", ""],
["starts-with", "$Filename", ""],
["starts-with", "$success_action_status", ""],
Filename 是 Flash 后端发送的字段,但 HTML5 后端不发送。
multipart 设置必须为 True,但目前这是默认设置。
multipart_params 设置必须是包含以下字段的字典:
keyAWSAccessKeyIdacl = 'private'policysignaturesuccess_action_status = '201'将success_action_status 设置为 201 会导致 S3 返回带有 HTTP 状态代码 201 的 XML 文档。这是使 flash 后端工作所必需的。 (响应为空且code为200或204时flash上传卡住。响应为redirect时会导致I/O错误。)
S3 不理解块,因此删除 chunk_size 配置选项。
unique_names 可以是 True 或 False,两者都有效。【讨论】:
最新的 Plupload 版本包含说明性示例,很好地展示了如何使用 Plupload 将文件上传到 Amazon S3,使用 Flash 和 SilverLight 运行时。
这是最新的报道:Upload to Amazon S3
【讨论】:
官方Plupload教程,比这里的答案详细得多:https://github.com/moxiecode/plupload/wiki/Upload-to-Amazon-S3
【讨论】:
如果您使用的是 Rails 3,请查看我的示例项目:
使用 Rails 3、Flash 和基于 MooTools 的 FancyUploader 直接上传到 S3 的示例项目:https://github.com/iwasrobbed/Rails3-S3-Uploader-FancyUploader
使用 Rails 3、Flash/Silverlight/GoogleGears/BrowserPlus 和基于 jQuery 的 Plupload 直接上传到 S3 的示例项目:https://github.com/iwasrobbed/Rails3-S3-Uploader-Plupload
【讨论】:
我想注意,不要忘记将 crossdomain.xml 上传到您的 s3 主机,如果您有 success_action_redirect url,您也需要在该域上拥有 crossdomain.xml 文件。我花了 1 天时间解决这个问题,终于找到了问题所在。所以下次想想 Flash 是如何在里面工作的。
希望我为某人节省时间。
【讨论】: