配置 ActiveStorage 以通过 ECS 凭证使用 S3

问题描述 投票:0回答:1

我正在尝试配置 ActiveStorage 以使用 ECS 凭证,但找不到任何有关如何配置它的文档。

现在我有:

staging:
  service: S3
  region: "MYREGION"
  bucket: "MYBUCKETNAME"
  credentials: Aws::ESCCredentials

但我不认为这是正确的?

我正在尝试遵循 ActiveStorage 网站上的文档: https://edgeguides.rubyonrails.org/active_storage_overview.html#s3-service-amazon-s3-and-s3-known-apis 导致 https: //docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Client.html#initialize-instance_method 。我只是不知道如何在

credentials
字段中设置正确的值。

ruby-on-rails amazon-web-services amazon-s3 rails-activestorage
1个回答
0
投票

什么对我有用:

storage.yml

staging:
  service: S3
  region: "MYREGION"
  bucket: "MYBUCKETNAME"

然后,在

config/initializers
中创建一个名为
aws.rb
的额外文件,其中包含以下内容:

require 'aws-sdk-core'

if Rails.env === 'staging' || Rails.env === 'production'
  Aws.config.update(credentials: Aws::ECSCredentials.new)
end

当然,ECS 容器本身必须设置为包含必要的环境变量(这两个资源帮助我做到了这一点:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs -taskdefinition.html使用带有 terraform 的 Fargate 在 AWS 上部署 Docker 化的 Web 应用程序)

希望这可以帮助其他尝试做类似事情的人。

© www.soinside.com 2019 - 2024. All rights reserved.