如何通过URL上传到S3的文件没有扩展名?

时间:2011-07-27 20:55:53

标签: ruby-on-rails image-processing amazon-s3 heroku paperclip

我在heroku上使用s3上传照片上传没问题。

我还有一种方法可以让用户从网址上传。

不幸的是,似乎在使用此方法上传图片时,它们会在没有文件扩展名的情况下保存。

所以我得到了这种图片网址链接......

  

http://s3.amazonaws.com/mysite/images/23/original.?1311799466

如果在本地上传了相同的图片,它将如下所示:

  

http://s3.amazonaws.com/mysite/images/23/original。的 JPG ?1311799466

在我的pic模型中,这是我用来通过网址上传的代码:

def download_remote_image

        begin
            self.image = open(URI.parse(self.pic_url))
        rescue
            errors.add_to_base("- something is wrong with the image url.")
            return false
        else
            return true
        end
    end

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

改变:

def download_remote_image
  begin
    io = open(URI.parse(pic_url))
    def io.original_filename; base_uri.path.split('/').last; end
    io.original_filename.blank? ? nil : io
  rescue
  end
end

仔细,最新版本的Paperclip在遇到io对象而不是File时抛出错误,不确定是否修复了它。

答案 1 :(得分:0)

由于您使用的是回形针,因此应使用回形针生成图片网址,例如:

self.image(:thumb)