簡體   English   中英

Rails + Carrierwave + Ckeditor + Fog + S3 - 文件沒有指向亞馬遜

[英]Rails + Carrierwave + Ckeditor + Fog + S3 - files are not pointing to amazon

我試圖在S3上運行我的靜態文件,一切都很好。 文件可用,呈現和上傳沒有任何問題。 但是通過ckeditor推送到博客的所有內容都不是指向亞馬遜主機,而是指向應用程序網址。

這是配置

配置/初始化/ fog.rb

CarrierWave.configure do |config|
  config.cache_dir = "#{Rails.root}/tmp/uploads" 

  config.storage = :fog

  config.fog_credentials = {
    provider:              'AWS',
    aws_access_key_id:     Rails.application.secrets.app_s3_username,
    aws_secret_access_key: Rails.application.secrets.app_s3_password,
    region:                Rails.application.secrets.app_s3_region
  }
  config.fog_directory  = Rails.application.secrets.app_s3_bucket
  config.fog_public     = false
  config.fog_attributes = { 'Cache-Control' => "max-age=#{365.day.to_i}" }
end

車型/ CKEditor的/ picture.rb

class Ckeditor::Picture < Ckeditor::Asset
  mount_uploader :data, CkeditorPictureUploader, :mount_on => :data_file_name

  def url_content
    url(:content)
  end

end

上傳/ ckeditor_picture_uploader.rb

# encoding: utf-8
class CkeditorPictureUploader < CarrierWave::Uploader::Base
  include Ckeditor::Backend::CarrierWave

  # Include RMagick or ImageScience support:
  # include CarrierWave::RMagick
  include CarrierWave::MiniMagick
  # include CarrierWave::ImageScience

  # Choose what kind of storage to use for this uploader:
  storage :fog
.
.
.

安裝寶石

  * carrierwave (0.11.2)
  * ckeditor (4.1.6)
  * fog (1.37.0)

無論如何,其他上傳者圖片的網址是https://bucket.s3-eu-west-1.amazonaws.com/uploads/ ... ckeditor圖片的網址http://example.com/uploads/ ...

任何建議和幫助將不勝感激,因為我嘗試和搜索互聯網,並沒有找到任何有類似問題的人。 有些人提到了公共/私有圖片的問題,但這不是我的問題,因為URL不正確

您是否嘗試重新啟動Rails服務器?

嘗試創建config/initializers/carrierwave.rb而不是lib/carrierwave/storage/fog.rb https://github.com/carrierwaveuploader/carrierwave/tree/0.11-stable#configuring-carrierwave

只需幾個簡單的步驟即可解決問題:

首先你要知道,ckeditor將圖像的src硬編碼到數據庫中,所以當ckeditor carrierwave被修改為從舊源指向s3時,舊鏈接被破壞並且必須通過轉儲表來修復

mysqldump -hhost -uuser -ppassword database table > table.dump

然后通過sed或一些可以查找和替換的文本編輯器進行編輯

nano table.dump + ctrl + w + r

然后搜索“/ uploads /並替換為” https://bucket.amazonaws.com/uploads/

當然只是在你保存文件夾結構的情況下。

上傳的第二個問題根本不是問題。 我剛剛沒有測試它,因為我先查看現有圖片。

PS:只是為了確保即使將來也可以使用。 我將配置公開,因此src鏈接未存儲可能過期的所有詳細信息並將桶策略編輯到

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket/*"
        }
    ]
}

嘗試重置您的數據庫。 或者將表格放在你的ckeditor照片網址存儲之前,然后將它們指向霧/ aws。 為我工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM