簡體   English   中英

Carrierwave + fog + S3 + Rails無法在數據庫中保存完整的URL

[英]Carrierwave + fog + S3 +Rails Cannot save full URL in database

我試圖在我的數據庫中保存使用carrierwave上傳的圖像的完整URL,而不僅僅是標識符。 在保存之前,我有可用的圖像URL,但是在保存時,只有標識符出現在數據庫中。 我在Carrierwave.rb配置中設置了主機和端點,以及asset_host。 見下文:

CarrierWave.configure do |config|
  config.fog_provider = 'fog/aws'                        # required
  config.fog_credentials = {
    provider:              'AWS',                        # required
    aws_access_key_id:     'xxx',                        # required
    aws_secret_access_key: 'yyy',                        # required
    region:                'eu-west-1',                  # optional, defaults to 'us-east-1'
    host:                  's3.example.com',             # optional, defaults to nil
    endpoint:              'https://s3.example.com:8080' # optional, defaults to nil
  }
  config.fog_directory  = 'name_of_directory'                          # required
  config.fog_public     = true                                        # optional, defaults to true
config.asset_host = "https://s3.example.com:8080/name_of_directory"
end

在這種情況下,asset_host似乎沒有做太多。 還有另一種方法可以確保保存完整的URL嗎?

謝謝!

存儲所有完整的URL會導致大量重復(因為主機對於所有這些都是相同的)。 因此,這里的方法是僅存儲不同的部分,並從已知主機和存儲的標識符構建URL。 因此,當您加載文件時,您應該能夠使用carrierwave接口輕松找到該URL(如果提供,它應該尊重asset_host)。

是否有特殊原因需要它來存儲完整的網址?

暫無
暫無

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

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