带有文件上传/下载的Rails 3 Paperclip

问题描述

| 我有一个Rails 3应用程序,该应用程序允许用户通过回形针将文件上传到Amazon s3,从而共享文件,并且我希望允许其他用户下载这些文件。但是,似乎对该文件在我的应用程序和Amazon s3之间的某个位置进行了某种后期处理。 这是我的代码
  has_attached_file :attachment,:storage => :s3,:s3_credentials => \"#{RAILS_ROOT}/config/s3.yml\",:path => \':id/:style\',:bucket => \"test_development\"
效果很好,但是,如果我实际使用Amazon s3开发人员工具,则该文件的URL似乎只是:http://s3.amazonaws.com/test_development/1/original,而没有原始名称或类型。 然后,我尝试使用以下内容:something1ѭ 结果如下:http://s3.amazonaws.com/test_development/1/original/test.pdf 但是,如果我到达此网址,则会收到一个神秘的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     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...