【问题标题】:Rails carrierwave link generated different from s3 storage linkRails 载波链接生成不同于 s3 存储链接
【发布时间】:2017-09-11 19:43:19
【问题描述】:

我创建了一个 rails api,但我在上传图片时遇到了问题。 我正在使用carrierwave,图片上传正常,但链接错误。

例子:

这是我在 RESTful api 中找到的链接:

https://s3.eu-west-2.amazonaws.com/gpsql/uploads/driver/picture/35/imagename.png

但是当我检查 S3 存储时,我发现了一个不同的链接:

https://s3.eu-west-2.amazonaws.com/gpsql/gpsql/gpsql/uploads/driver/picture/35/imagename.png

这是 s3 载波的初始化器:

CarrierWave.configure do |config|
  config.fog_provider = 'fog/aws' # required
  config.fog_credentials = {
      provider: 'AWS', # required
      aws_access_key_id: '...', # required
      aws_secret_access_key: '...', # required
      region: 'us-west-2',
      path_style: true,
  }
  config.fog_directory = 'gpsql' # required
  config.asset_host = 'https://s3.eu-west-2.amazonaws.com/gpsql'
  config.fog_attributes = {'Cache-Control' => "max-age=#{365.day.to_i}"} # optional, defaults to {}
end

在图片上传器中:

def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

如何修复 RESTful api 中显示的链接以及为什么亚马逊链接中有这么多“存储桶名称”为什么不是简单的链接/存储桶名称/image.png

对于我在 restful api 中找到的第一个链接,它根本不起作用我在 amazon s3 中的第二个链接被拒绝或找不到密钥,它可以正常工作。

【问题讨论】:

  • 你试过没有config.asset_host,删除它并重新启动rails服务器。
  • 是的,我试过了。它最初并不存在,这是我尝试过的解决方案之一,但遗憾的是没有任何效果。 @7urkm3n
  • 您是否尝试过删除 config.asset_host 并在雾凭据中添加主机和端点?:host: 's3.example.com', endpoint: 'https://regionendpointhere.amazonaws.com ?如fog + s3的文档中所述?
  • @jenvvv 我试过但没用。我不知道为什么,但添加:config.fog_public=true 修复了现在存在的链接是正确的 100%。

标签: ruby-on-rails amazon-web-services amazon-s3 carrierwave rails-api


【解决方案1】:

其中一个问题是这样的

config.asset_host = 'https://s3.eu-west-2.amazonaws.com/gpsql'

应该是

config.asset_host = 'https://s3.eu-west-2.amazonaws.com'

反正我不知道为什么会重复两次...

所以,如果可以的话,你应该在配置中修复它并将 S3 中的文件夹移动到正确的位置

如果你不能移动它,我会尝试将存储目录更改为"gpsql/gpsql/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"

我不确定这是否可行,但这将是我的第一步

【讨论】:

猜你喜欢
  • 2022-12-08
  • 2018-11-16
  • 2020-12-07
  • 1970-01-01
  • 2018-12-06
  • 1970-01-01
  • 2012-08-05
  • 1970-01-01
  • 2019-04-10
相关资源
最近更新 更多