0

저는 몇 시간 동안이 작업을 해왔으며 알아낼 수 없었습니다. 나는 git clean을 실행하고 나서 s3.yml 파일이 삭제되었음을 깨달았다. 새로운 키를 생성하고 새로운 s3.yml 파일에 저장했습니다. 나는 잘 작동하기 전에 다른 것을 변경하지 않았습니다. 내가 뭘 놓치고 있니?Aws :: Errors :: MissingCredentialsError in PostsController # update with Paperclip and AWS

나는군요 : 새로운 접근 (

development.rb

config.paperclip_defaults = { 
    storage: :s3, 
    s3_region: 'us-east-1', 
    bucket:'mybucket', 
    s3_credentials: "#{Rails.root}/config/s3.yml" 
    } 

production.rb

config.paperclip_defaults = { 
     storage: :s3, 
     s3_credentials: { 
     bucket: ENV.fetch('S3_BUCKET_NAME'), 
     access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'), 
     secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'), 
     s3_region: ENV.fetch('AWS_REGION'), 
     } 
    } 
    # Secret key base for non-existent secrets.yml file 
    config.secret_key_base = ENV["SECRET_KEY_BASE"] 

s3.yml : 여기

Aws::Errors::MissingCredentialsError (unable to sign request without credentials set): 내 코드입니다 키)

S3_BUCKET_NAME: mybucket 
AWS_ACCESS_KEY_ID: *** 
AWS_SECRET_ACCESS_KEY: *** 
AWS_REGION: us-east-1 

포스트 클래스

class Post < ApplicationRecord 
    belongs_to :user, counter_cache: true 
    belongs_to :category 

    validates :title, :presence => true 
    validates :content, :presence => true 

    has_attached_file :thumbnail, styles: { 
     medium: '270x170#', 
     large: '560x280#', 
     large2: '540x340#' 
    } 

    # Validate the attached image is image/jpg, image/png, etc 
    validates_attachment_content_type :thumbnail, :content_type => /\Aimage\/.*\Z/ 
end 
+0

어떤 환경에서 오류가 발생합니까? dev 또는 prod? – TheOni

+0

@ TheOni development – Mia

답변

1

당신은 내가 오류가 s3_credentials 때문이라고 생각 dev에 환경에 오류가 점점로서 : "/config/s3.yml # {Rails.root을}".

게시 한 s3.yml을 생각해 보면 s3_credentials은 프로덕션 환경에있는 것과 같은 json 구조로 채워지지 않을 것이라고 생각합니다.

프로덕션 환경에서와 마찬가지로 파일을로드하고 json을 채울 것을 제안합니다.

+0

문제가 있다고 생각합니다.하지만 프로덕션 환경으로 변경했을 때 키를 찾을 수 없습니다 : "S3_BUCKET_NAME". – Mia

+0

나는 그것을 이해했다! 올바른 방향으로 나를 가리켜 주셔서 대단히 감사합니다! :)) 다음을 수행하여 터미널의 ENV 변수에 값을 추가해야했습니다. export ENV_VARIABLE_NAME = "value" – Mia