0

私は昨年RoRアプリケーションを開発するコースにいました。アカウントのキーを使用してAWSを検索して結果を返すものを開発しました。今はAmazonを検索するたびに403エラーが発生します。Ruby on RailsアプリケーションはAWSにクエリできません - エラー403は禁じられています

キーを再作成しましたが、これをRailsコンソールで更新しましたが、役に立たなくなりました。私の資格情報を確認するにはどうすればいいですか?この問題を解決するために他に何ができますか?

+0

更新:ENVを使用してAmazonキーを取得するsecrets.ymlというファイルがあります。しかし、実際にこのファイルに直接キーを入力すると、それが動作します。私のアプリがそれらを使用するために、どのように環境変数としてキーを設定できますか? – Tensigh

答えて

1

私は、次のように設定/ロケール/下aws.ymlと呼ばれる新しい.ymlファイル内のキーの位置を設定します:

のように添付ファイルを持つモデルで
development: 
    access_key_id: XXXXXXXXXXXXXX 

    secret_access_key: XXXXXXXXXXXXXXXX 
    s3_region: eu-central-1 
test: 
    access_key_id: XXXXXXXXXXXXXXXX 

    secret_access_key: XXXXXXXXXXXXXXXX 
    s3_region: eu-central-1 
production: 
    access_key_id: XXXXXXXXXXXXXXXX 

    secret_access_key: XXXXXXXXXXXXXXXX 
    s3_region: eu-central-1 

そして:あなたは

s3_credentials: "#{Rails.root}/config/aws.yml", 

だからあなたのモデルshoulにおける最終的な結果としてs3_credentialsを設定することができます

has_attached_file :img 

あなたのビューで

has_attached_file :img, 
       styles: { :model_index => "250x350", :img_show => "325x475"}, 
       storage: :s3, 
       url: ':s3_domain_url', 
       bucket: 'yourbucket', 
       s3_credentials: "#{Rails.root}/config/aws.yml", 
       path: "resources/:id/:style/:basename.:extension" 

そして:

<%= @model.model_img.url(:img_show) %> 

そしてそこにあなたはそれを持ってこのようになりdが!

+0

これはs3_region:eu-central-1のためのものです。別のS3領域を選択した場合とは異なります。 – Crashtor

関連する問題