2

このガイドhttps://gist.github.com/stefanneculai/deed108fad534d0db3ffに従ってAmazon 署名を作成しています。

  def getSignatureKey
    kDate    = OpenSSL::HMAC.digest('sha256', 'AWS4' + Figaro.env.aws_secret_access_key, Time.zone.now.utc.strftime('%Y%m%d'))
    kRegion  = OpenSSL::HMAC.digest('sha256', kDate, 'us-west-2')
    kService = OpenSSL::HMAC.digest('sha256', kRegion, 's3')
    kSigning = OpenSSL::HMAC.digest('sha256', kService, 'aws4_request')
    kSigning
  end

私はレールにfroala gemを使用し、imageUploadToS3オプションを使用しています。ただし、新しい Amazon 署名バージョンを使用すると、このエラーが発生します。

Encoding::UndefinedConversionError at /admin/campaigns/1/edit_content
"\xAC" from ASCII-8BIT to UTF-8

に変えてみましたgetSignatureKey.force_encoding("ISO-8859-1").encode("UTF-8")。その後、サーバーは正常に動作し、画像をアップロードするとSignatureDoesNotMatchAmazon から戻ってきます。

どんな助けでも大歓迎です。

4

2 に答える 2