Rails载波链路与S3存储链路不同



我创建了一个导轨API,但我的图像上传有问题。我正在使用载波,图片的上传正在正常工作,但链接错误。

示例:

这是我在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/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中显示的链接,也是为什么在Amazon链接中有这么多的"存储桶名",为什么不直接链接/bucketName/image.png

对于我在Restful API中发现的第一个链接,它根本无法使用,我无法访问或在Amazon S3中找到的第二个链接,它没有任何问题。

问题之一是这个

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

应该是

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

无论如何我都不知道为什么要重复两次...

因此,如果可以的话,应该在配置中修复它,然后将S3中的文件夹移动到适当的位置

如果您不能移动它,我会尝试将商店dir更改为 "gpsql/gpsql/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"

我不确定这是否有效,但这将是我的第一步

相关内容

  • 没有找到相关文章

最新更新