Saya telah mengerjakan ini selama berjam-jam dan belum dapat menemukan jawabannya. Saya menjalankan git clean dan kemudian menyadari bahwa file s3.yml saya terhapus. Saya membuat kunci baru dan meletakkannya di file s3.yml baru. Saya belum mengubah apa pun dari sebelumnya yang berfungsi dengan baik. Apa yang saya lewatkan?

Saya mendapatkan: Aws::Errors::MissingCredentialsError (unable to sign request without credentials set):

Ini kode saya:

Development.rb

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

Produksi.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 (dengan kunci akses baru)

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

Kelas pasca

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
Mia 29 Desember 2017, 22:18

1 menjawab

Jawaban Terbaik

Saat Anda mendapatkan kesalahan pada lingkungan dev, saya pikir kesalahan tersebut disebabkan oleh s3_credentials: "#{Rails.root}/config/s3.yml".

Mengingat s3.yml yang telah Anda posting, saya tidak berpikir bahwa s3_credentials akan diisi dengan struktur json seperti yang Anda miliki di lingkungan produksi.

Saya menyarankan Anda untuk memuat file dan mengisi json seperti yang Anda lakukan di lingkungan produksi Anda.

1
TheOni 29 Desember 2017, 19:28