AWS S3 桶端点失败

AWS S3 Bucket Endpoint Failing

我正在 Rails 5、Ruby 2.4.0 中构建一个 Web 应用程序,并使用 AWS-SDK Gem 和 Shrine gem。

目前,当我尝试将图像上传到我的 AWS 存储桶时收到此错误消息。

我在这里验证了我的区域:http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region

My shrine.rb file:

 require "shrine"
require "shrine/storage/s3"
require "image_processing/mini_magick"

s3_options = {
    :access_key_id =>       ENV["AWS_ACCESS_KEY_ID"],
    :secret_access_key =>   ENV["AWS_SECRET_KEY"],
    :region =>              'ca-central-1',
    :bucket =>              ENV["AWS_BUCKET"],
}

Shrine.storages = {
    cache: Shrine::Storage::S3.new(prefix: "cache", **s3_options),
    store: Shrine::Storage::S3.new(prefix: "store", **s3_options),
}

我在该区域进行了硬编码,以查看它是否可能是我的 ENV 的问题。但我得到了相同的结果。

我对如何继续进行这件事感到困惑,因为每次我尝试为我的区域神社设置端点时都会尖叫并说它的配置无效。

如有任何帮助,我们将不胜感激!

添加另一个参数:

:s3_host_name => s3.ca-central-1.amazonaws.com

此问题已在 shrine#163 中报告,并且似乎通过指定 :endpoint:

解决了该问题
require "shrine"
require "shrine/storage/s3"
require "image_processing/mini_magick"

s3_options = {
  :access_key_id =>       ENV["AWS_ACCESS_KEY_ID"],
  :secret_access_key =>   ENV["AWS_SECRET_KEY"],
  :region =>              'ca-central-1',
  :bucket =>              ENV["AWS_BUCKET"],
  :endpoint =>            ENV["AWS_ENDPOINT"] # <=======
}

Shrine.storages = {
  cache: Shrine::Storage::S3.new(prefix: "cache", **s3_options),
  store: Shrine::Storage::S3.new(prefix: "store", **s3_options),
}