1

我正在使用 CKEditor,并且已将其配置为与 Paperclip 一起使用,但我无法告诉它将文件存储在 S3 中,因此它使用 Paperclip 但将它们存储在本地文件系统上。

所以我想知道是否有某种方法可以告诉 Paperclip 每次使用时都明确使用 S3。

我知道如何在某些型号上使用 S3 配置 Paperclip(很简单,在回形针 github wiki 上进行了描述)。我正在 Heroku 上进行部署,这就是为什么我无法写入本地文件系统。

4

3 回答 3

5

一种方法是查看 ckeditor 安装生成器在做什么。例如,如果使用 ActiveRecord 作为 ORM,请在此处查看用于使用 Paperclip 的模型的模板。

生成器实际上将此模板复制到您的 app/models/ckeditor 文件夹中。您可以编辑它们并根据需要进行配置,以便 Paperclip 使用 S3。

对于 ActiveRecord,模型是:

/app/models/ckeditor/attachment_file.rb
/app/models/ckeditor/picture.rb

请记住,如果更新 ckeditor gem 并且更新过程需要覆盖此模型,则此方法可能会在将来为您提供额外的工作。

否则,您可以使用 Paperclip 默认选项。在您的回形针初始化程序(/config/initializers/paperclip.rb)中使用:

Paperclip::Attachment.default_options.merge!(
    YOUR OPTIONS FOR S3 HERE
) 
于 2012-05-31T19:52:49.867 回答
2

对于carrierwave,您可以生成上传器,在那里您可以配置您的s3 或任何您想要的。

class CkeditorAttachmentFileUploader < CarrierWave::Uploader::Base
  include Ckeditor::Backend::CarrierWave
  # Choose what kind of storage to use for this uploader:
  if Rails.env.production?
    storage :fog
  else
    storage :file
  end
....
end
于 2015-06-26T17:21:33.353 回答
-1

这很简单。您可以使用这篇文章来帮助您入门。或者,您可以查看这个类似的问题以获取更多详细信息。

于 2012-05-31T19:43:49.320 回答