Я следую этому руководству по созданию Подпись Амазонки.
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 для рельсов и использую опцию 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")
. После этого сервер работает нормально, и когда я загружаю изображение, я получаю SignatureDoesNotMatch
от Amazon.
Любая помощь приветствуется.