0

我在 Amazon S3 上有一组图像,我想为它们自动生成缩略图以在我的网站上提供服务。

我考虑过 Cloudinary,但似乎我必须先将所有图像复制到 Cloudinary 服务器。我想将它们保留在 S3 上。

我考虑过 Dragonfly,但似乎 Dragonfly 只适用于我在安装 Dragonfly 后上传的文件。我已经上传了所有文件。

对我来说有什么好的解决方案?我在 Rails 环境中(rails 3.2)。

谢谢!

4

2 回答 2

0

我错了蜻蜓。您可以在已上传的文件上使用 Dragonfly。我在我的项目中使用它,效果很好。

于 2013-08-29T15:11:04.667 回答
0

如果它只是一组“图像”,那么它的结构并不是那么好。您最好重新组织存储和管理图像的方式。

试试回形针

class ModelName < ActiveRecord::Base

  attr_accessible :image #more here
  has_attached_file :image, :styles => { :large => "450x450>", :medium => "300x300>", :thumb => "150x150>" },
    :storage => :s3,
    :s3_credentials => "#{Rails.root}/config/s3.yml",
    :path => "people/:style/:id/:filename",
    :s3_protocol => "https"

   def original_image_url
     image.url
   end

   def large_image_url
     image.url(:large)
   end

   def medium_image_url
     image.url(:medium)
   end

   def small_image_url
     image.url(:thumb)
   end

 #etc

 end

然后只需执行此操作即可通过控制台将现有图像分配给现有实例:

require 'uri'
@instance.image = open(URI::encode(url))
@instance.save
# s3 will now contain the images in the appropriate sizes in the format specified above.

由于原件也将被保存,我建议您删除您开始使用的 s3 上的“图像集”,否则您将复制它们。

于 2013-08-15T15:47:33.713 回答