Я схожу с ума.
Я использую Shrine (https://github.com/janko-m/shrine) с Google Cloud Storage (https://github.com/renchap/shrine-google_cloud_storage), но когда я запускаю вызов PUT
, я получаю следующее:
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>
The request signature we calculated does not match the signature you provided. Check your Google secret key and signing method.
</Message>
<StringToSign>
PUT
image/jpeg
1518399402
/mybucket.appspot.com/7d5e4aad1e3a737fb8d2c59571fdb980.jpg
</StringToSign>
</Error>
Я следил за этой информацией (http://shrinerb.com/rdoc/classes/Shrine/Plugins/PresignEndpoint.html) для presign_endpoint
, но ничего:
class FileUploader < Shrine
plugin :presign_endpoint, presign_options: -> (request) do
filename = request.params["filename"]
extension = File.extname(filename)
content_type = Rack::Mime.mime_type(extension)
{
content_type: content_type
}
end
end
Я пробовал с этим и без него (каждый раз перезапуская сервер Rails).
Где я не прав?
Я также пытался использовать Postman с PUT для этого URL и без какого-либо content-type. Но все равно ничего.
Я прочитал здесь: https://github.com/GoogleCloudPlatform/google-cloud-node/issues/1976 и здесь: https://github.com/GoogleCloudPlatform/google-cloud-node/issues/1695
Как я могу попробовать без Rails?
Есть ли REPL (или аналогичный), который можно попробовать с моими учетными данными и с файлом?