我正在尝试在我的数据库中保存使用carrierwave上传的图像的完整网址,而不仅仅是标识符。在保存之前,我有可用的图像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似乎没有做太多。还有另一种方法可以确保保存完整的网址吗?
谢谢!
答案 0 :(得分:0)
存储所有完整的URL会导致大量重复(因为所有这些主机的主机都是相同的)。因此,这里的方法是仅存储不同的部分,并从已知主机和存储的标识符构建URL。因此,当您加载文件时,您应该能够使用carrierwave接口轻松找到该URL(如果提供的话,它应该尊重asset_host)。
是否有特殊原因需要它来存储完整的网址?