0

我正在 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

在此处输入图像描述

我的神社.rb 文件:

 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 的问题。但我得到相同的结果。

我不知道如何继续进行此操作,因为每次我尝试为我的区域神殿设置端点时都会尖叫并说它是无效的配置。

在这里的任何帮助将不胜感激!

4

2 回答 2

1

该问题已在神殿#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),
}
于 2017-05-21T03:05:11.220 回答
0

添加另一个参数:

:s3_host_name => s3.ca-central-1.amazonaws.com
于 2017-05-19T04:42:45.630 回答