当我尝试将数据播种到 heroku(生产)上的应用程序时,我看到:
Aws::S3::Errors::AccessDenied:拒绝访问
当我尝试手动测试时:
s3 = Aws::S3::Resource.new(region: 'us-east-1')
Aws::Sigv4::Errors::MissingCredentialsError: missing credentials, provide credentials with one of the following options:
- :access_key_id and :secret_access_key
- :credentials
- :credentials_provider
from /app/vendor/bundle/ruby/2.7.0/gems/aws-sigv4-1.2.1/lib/aws-sigv4/signer.rb:613:in `extract_credentials_provider'
但这是不可能的,因为
# storage.yml
amazon:
service: S3
access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
region: us-east-1
如果我在 heroku: 上的 rails 控制台中运行它Rails.application.credentials.dig(:aws, :access_key_id)
,那么我会看到密钥。所以它给出了“缺少凭据”错误,但我知道它可以看到凭据。诡异的。
所以我来到了我认为我错过了一些(可能是基本的)步骤的地方,但我不知道是什么。
其他注意事项:
- 我确认通过简单运行设置了rails主密钥
heroku run env
,我可以看到它