0

Я пытаюсь использовать S3 в качестве моего хоста для загруженных файлов Paperclip. Сервер S3 находится в Китае.Скрепка с S3 - AWS :: S3 :: Ошибки :: InvalidAccessKeyId

# Gemfile 
gem 'aws-sdk', '< 2.0' 
gem 'paperclip', "~> 4.2" 

Я установил AWS, используя переменные среды.

AWS_ACCESS_KEY_ID: <access key> 
AWS_SECRET_ACCESS_KEY: <secret key> 
AWS_REGION: 'cn-north-1' 

Установка AWS должен быть успешным, потому что я в состоянии создать ведро в консоли Rails с помощью

AWS::S3.new.buckets.create('dns-compat-bucket-name') 

И мой Paperclip конфигурации как следовать

# config/environments/development.rb 
config.paperclip_defaults = { 
    :storage => :s3, 
    :s3_host_name => 's3.cn-north-1.amazonaws.com.cn', 
    :bucket => 'superayi-prod-beijing' 
} 

Однако я все еще получают ошибку: AWS::S3::Errors::InvalidAccessKeyId

The AWS Access Key Id you provided does not exist in our records.

+0

Вы можете проверить разрешение в политике ведра. – Shrikant1712

+0

Также, где вы положили ваши varbales ENV – Shrikant1712

ответ

0

Если вы используете YAML файл (settings.yml) и ENV переменные для целей конфигурации, то вы должны использовать следующий синтаксис

development: 
    access_key_id: <%= ENV['S3_KEY'] %> 
    secret_access_key: <%= ENV['S3_SECRET'] %> 

Как YAML файлы могут понять код в формате ERB и рубин код идет между <% и%>

0

Он заканчивает тем, что у меня есть следующие строки в другом файле:

# config/initializers/paperclip.rb 
Paperclip::Attachment.default_options[:s3_host_name] = 's3-ap-northeast-1.amazonaws.com' 

Этот , по какой-то причине перезаписывает настройки в development.rb.

Для людей, которые сталкиваются с подобной проблемой, как это, следующие советы по устранению неисправностей могут быть полезны:

  1. Как @ предложил Shrikant1712, АМС полномочия должны быть переданы PAPERCLIP через :s3_credentials вариант либо как путь к файлу или хэш.

  2. s3_host_name должен быть конечной точкой REST API, которая может быть найдена . Конечные точки в регионе Китая перечислены here.

Смежные вопросы