1

레일 API를 개발 중입니다. paperclip 보석을 사용하여 Amazon S3에 이미지를 저장합니다. 정책을 추가하지 않고 버킷에 대한 액세스 키를 사용하고 있습니다. 첨부 파일은 올바르게 업로드되어 S3에 저장되지만 레코드를 삭제하면 첨부 파일이 삭제되지 않습니다. 또한 혼자 첨부 파일을 삭제했는데, 그 다음과 같은 오류 준 :레일 클립 클립 S3 첨부 파일이 삭제되지 않음 (불량 요청)

# Paperclip config 
config.paperclip_defaults = { 
    storage: :s3, 
    s3_credentials: { 
     bucket: ENV.fetch('AWS_S3_BUCKET'), 
     access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'), 
     secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'), 
     s3_region: ENV.fetch('AWS_S3_REGION'), 
    } 
} 

응용이에게 Heroku에서 실행 : 내 구성에서

has_attached_file :main_image 
validates_attachment :main_image, presence: true, 
        content_type: { content_type: %w(image/jpeg image/png)}, 
        size: { in: 0 .. 1.megabytes } 

: 내 모델에서

[AWS S3 400 0.382023 0 retries] head_object(:bucket_name=>"my-bucket-name",:key=>"the/url/to/the/image.jpg") AWS::S3::Errors::BadRequest AWS::S3::Errors::BadRequest 

을 . 권한 문제입니까? 저는 aws-sdk 보석 버전 1.66을 사용하고 있습니다.

답변

0

업로드 할 수는 있지만 삭제할 수 없기 때문에 AWS S3의 사용 권한 문제입니다. 액세스 키와 비밀 키를 생성하기 위해 AWS IAM 사용자를 생성 했습니까? 그렇다면 정책을 붙여 넣을 수 있습니까?

+0

아직 IAM 사용자를 만들지 않았으므로 루트 액세스 키를 사용하고 있습니다. –

관련 문제