使用Carrierwave上传Rails,使用Fog转换为S3 - HTTP与HTTPS

时间:2013-02-15 01:10:15

标签: ruby-on-rails-3 amazon-s3 carrierwave fog

我一直关注Ryan Bates在将文件上传到S3(第383集)时出色的Rails Cast。事情很好 - 但是......

我想使用图片的HTTP网址而不是HTTPS。

尝试查看Carrierwave文档,但无法找到这是否是一个选项。 试图看看这是否是S3设置,但默认情况下它似乎支持HTTP和HTTPS。

任何帮助都将不胜感激。

谢谢。

3 个答案:

答案 0 :(得分:4)

您可以通过设置asset_host配置参数:

来完成此操作
CarrierWave.configure do |config|
  ...
  config.fog_directory  = 'yourbucket'

  # Forcing use of HTTP
  config.asset_host = "http://#{config.fog_directory}.s3.amazonaws.com"
  ...
end

如果您的存储桶位于美国标准以外的区域,您可能还需要将该部分添加到主机。

答案 1 :(得分:3)

CarrierWave 0.9.0 added a configuration param fog_use_ssl_for_aws为public_url禁用SSL。

CarrierWave.configure do |config|
  ...
  config.fog_use_ssl_for_aws = false
  ...
end

答案 2 :(得分:0)

不确定这是否是您要找的,但如果您想允许用户从S3存储桶下载文件,则需要为每个人创建列出和下载文件的权限。

可以在“权限”选项卡下的S3存储桶配置面板中完成。默认情况下,S3文件将是私有的,因此您需要一个经过身份验证的URL才能访问它们。