我正在使用CKEditor,我已将其配置为使用Paperclip,但我不能告诉它在S3中存储文件,因此它使用Paperclip存储它们,但是在本地文件系统上。
所以我想知道是否有某种方法告诉Paperclip每次使用时都明确使用S3。
我知道如何在某些型号上配置带有S3的Paperclip(非常简单,在paperclip github wiki上有描述)。我正在Heroku上部署,这就是我无法写入本地文件系统的原因。
答案 0 :(得分:5)
一种方法是查看ckeditor安装生成器正在做什么。 例如,如果将ActiveRecord用作ORM,请查看用于使用Paperclip here的模型的模板。
生成器实际上将此模板复制到app / models / ckeditor文件夹中。您可以编辑它们并根据需要配置Paperclip以使用S3。
对于ActiveRecord,模型是:
/app/models/ckeditor/attachment_file.rb
/app/models/ckeditor/picture.rb
请记住,如果更新ckeditor gem并且更新过程需要覆盖此模型,这种方法将来可以为您提供额外的工作。
否则,您可以使用Paperclip默认选项。在您的Paperclip初始化程序(/config/initializers/paperclip.rb)中使用:
Paperclip::Attachment.default_options.merge!(
YOUR OPTIONS FOR S3 HERE
)
答案 1 :(得分:1)
对于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
答案 2 :(得分:-1)
这很直截了当。您可以使用this post来帮助您入门。或者,您可以查看this similar question了解更多详情。