Rails 3文件上传/下载回形针



我有一个rails 3应用程序,允许用户通过回形针将文件上传到Amazon s3来共享文件,我想允许其他用户下载这些文件。然而,在我的应用程序和Amazons3之间的某个地方,这个文件似乎正在进行某种后期处理。

这是我的代码:

  has_attached_file :attachment,
                    :storage => :s3, :s3_credentials => "#{RAILS_ROOT}/config/s3.yml", 
                    :path => ':id/:style', :bucket => "test_development"

这很好,但是,如果我真的去了amazons3开发工具,文件的url似乎是:http://s3.amazonaws.com/test_development/1/original没有原始名称或类型。

然后我尝试使用类似的东西:[p.attachment.url(:original, false), p.attachment_file_name].join("/")

其产生:http://s3.amazonaws.com/test_development/1/original/test.pdf

然而,如果我到达这个url,我会得到一个神秘的xml错误:

<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>1/original/About Downloads.pdf</Key>
<RequestId>7E5CC6A01CADF831</RequestId>
<HostId>
4ruFf0JtdalnaIE/SHUAqT8hVYEda9Ul6gxNmYTIAniw7piTN+Q16uKKCzi9yezl
</HostId>
</Error>

我在这里做错了什么?我只想在没有任何处理的情况下将文件上传到s3,然后稍后再次下载。。我该怎么做?

谢谢!

:path选项用作完整文件名。没有添加任何内容,只是插值。尝试:path => ':id/:style/:basename.:extension'

当您更改:path时,通常还必须更改:url

更多信息:

  • http://rdoc.info/github/thoughtbot/paperclip/master/Paperclip/Storage/S3
  • http://rdoc.info/github/thoughtbot/paperclip/master/Paperclip/Storage/Filesystem
  • http://rdoc.info/github/thoughtbot/paperclip/master/Paperclip/ClassMethods#has_attached_file-instance_method

相关内容

  • 没有找到相关文章

最新更新