【问题标题】:How do I make Plupload upload directly to Amazon S3?如何使 Plupload 直接上传到 Amazon S3?
【发布时间】:2011-06-06 02:01:50
【问题描述】:

如何正确配置Plupload,以便将文件直接上传到Amazon S3

【问题讨论】:

  • 虽然已经回答了这个问题,但我首先担心的是,通过将所有 S3 详细信息放在客户端上,怀有恶意的用户肯定会利用这些信息。因此,考虑到其他人可能有同样的担忧,这里有一篇旨在解决这些问题的文章:codeonaboat.wordpress.com/2011/04/22/…

标签: amazon-s3 plupload


【解决方案1】:
  • 除了bucket、key和acl的条件外,策略文档还必须包含name、Filename和success_action_status的规则。例如:

        ["starts-with", "$name", ""],
        ["starts-with", "$Filename", ""],
        ["starts-with", "$success_action_status", ""],
    

    Filename 是 Fl​​ash 后端发送的字段,但 HTML5 后端不发送。

  • multipart 设置必须为 True,但目前这是默认设置。

  • multipart_params 设置必须是包含以下字段的字典:

    • key
    • AWSAccessKeyId
    • acl = 'private'
    • policy
    • signature
    • success_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,两者都有效。

【讨论】:

  • 目前无法使用 html5 运行时直接上传到 s3。亚马逊目前不允许跨域请求。
  • @Bastien:在 S3 上使用 Plupload 托管 HTML 页面效果很好,然后将其作为 iframe 包含在您的主页中。根据需要使用代理技巧调整 iframe 的大小。
  • 顺便说一句,我已经开始使用服务transloadit.com 处理上传到 S3,主要是因为他们负责重新缩放图像,但也因为他们的设置比 Plupload 更稳定-我编写的 iframe 内解决方案。
  • Vebjorn:我相信你错了,你对 HTML5 上传器工作的评论是不正确的,并在其他地方引起了一些混乱。 HTML4 上传通过 iframe 方法工作。 HTML5 将不起作用。更多信息在这里:plupload.com/punbb/viewtopic.php?pid=2361#p2361
  • @iWasRobbed:我确信它没有使用 HTML4 运行时,因为可以选择多个文件并且有一个功能性进度条。然而,这可能是在使用 Flash 运行时,而我认为它在使用 HTML5 的 S3 上工作是错误的。我不能再轻易地测试它了。
【解决方案2】:

最新的 Plupload 版本包含说明性示例,很好地展示了如何使用 Plupload 将文件上传到 Amazon S3,使用 Flash 和 SilverLight 运行时。

这是最新的报道:Upload to Amazon S3

【讨论】:

【解决方案3】:

官方Plupload教程,比这里的答案详细得多:https://github.com/moxiecode/plupload/wiki/Upload-to-Amazon-S3

【讨论】:

    【解决方案4】:

    如果您使用的是 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

    【讨论】:

      【解决方案5】:

      我想注意,不要忘记将 crossdomain.xml 上传到您的 s3 主机,如果您有 success_action_redirect url,您也需要在该域上拥有 crossdomain.xml 文件。我花了 1 天时间解决这个问题,终于找到了问题所在。所以下次想想 Flash 是如何在里面工作的。

      希望我为某人节​​省时间。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-17
        • 2011-09-01
        • 2012-12-16
        • 1970-01-01
        • 2011-05-12
        • 1970-01-01
        • 2013-09-06
        • 2014-10-23
        相关资源
        最近更新 更多