【问题标题】:Getting a Broken Pipe while uploading an mp3 with paperclip使用回形针上传 mp3 时出现断管
【发布时间】:2014-06-24 21:57:34
【问题描述】:

将带有回形针的 mp3 上传到 S3 后,管道不断损坏。我做错了什么?

型号

  has_attached_file :mp3,
                :storage => :s3,
                :path => 'mp3/:class/:id/:style.:extension',
                :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
                :bucket => 'cobras-production',
                :url => ':s3_domain_url'

控制器

 def create
  @track = Track.new(params[:track])
   if @track.save
    redirect_to(@track, :notice => 'Track was successfully created.')
   else
    render :action => "new"
   end
 end

【问题讨论】:

  • 如果您上传的文件没有空格、数字或特殊字符,您会收到错误消息吗? (见这篇文章:stackoverflow.com/questions/4419497/…)。
  • 当尝试上传一个名为 abc.mp3 的文件时,我仍然得到一个损坏的管道。
  • 运气好能解决这个问题吗?

标签: ruby-on-rails amazon-s3 paperclip


【解决方案1】:

我认为非美国存储桶位置可能存在问题。

我有 2 个应用程序设置为在 heroku 上运行,并且遇到了您提到的问题。当我将存储桶位置更改为美国时,回形针库与完全相同的文件完美配合。

您在哪里使用新加坡或东京作为您的存储桶位置。

https://github.com/marcel/aws-s3/issues/#issue/4

这更好地解释了问题

【讨论】:

    【解决方案2】:

    就我而言,这是因为我选择了一个新的(截至目前)AWS 区域“俄勒冈”。
    当我为我的存储桶切换回美国标准时,我没有遇到任何问题。

    【讨论】:

      【解决方案3】:

      可能值得指出的是,存储桶并不是按需自动创建的——您必须自己创建它们。如果您使用的是 aws-s3 gem,则该命令是

      AWS::S3::Bucket.create("cobras-production")
      

      【讨论】:

        【解决方案4】:

        对于未来的谷歌员工:我遇到了同样的问题,原因是我的计算机上的时间错误,这包含在请求中。亚马逊的服务器比较了我和他们的时间,导致错误。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-08-19
          • 1970-01-01
          • 1970-01-01
          • 2013-12-16
          • 1970-01-01
          • 2010-12-17
          • 1970-01-01
          • 2012-11-22
          相关资源
          最近更新 更多