繁体   English   中英

带有Paperclip和Amazon S3的CKEditor gem

[英]CKEditor gem with Paperclip and Amazon S3

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

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

我知道如何在某些模型上用S3配置Paperclip(非常简单,在paperclip github wiki上有介绍)。 我正在Heroku上进行部署,这就是为什么我无法写入本地文件系统的原因。

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

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

对于ActiveRecord,模型为:

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

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

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

Paperclip::Attachment.default_options.merge!(
    YOUR OPTIONS FOR S3 HERE
) 

对于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

非常简单。 您可以使用这篇文章开始。 另外,您可以查看此类似问题以获取更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM