署名済みの s3 URL からファイルをダウンロードしようとしています。
val url: String = "https://s3-us-west-2.amazonaws.com/exports.mandrillapp.com/<id>/activity-2021-02-01_00%3A34%3A43.zip?AWSAccessKeyId=<access_key>&Expires=1612744535&Signature=<signature>"
Uriに変換すると
val uri: Uri = uri"$url"
をデコードし%3A
ます。activity-2021-02-01_00%3A34%3A43.zip
-> activity-2021-02-01_00:34:43.zip
:
https://s3-us-west-2.amazonaws.com/exports.mandrillapp.com/<id>/activity-2021-02-01_00:34:43.zip?AWSAccessKeyId=<access_key>&Expires=1612744535&Signature=<signature>
デコードされた Uri でファイルを取得しようとすると、次のエラー メッセージが表示されます。
The request signature we calculated does not match the signature you provided. Check your key and signing method.
%3A
curl は機能するが:
機能しないため、uri のデコードが問題を引き起こしていると思います。
パスのデコードを回避する方法はありますか? 私はそれについて何も見つけることができませんでした。
次の sttp バージョンを使用しています。
"com.softwaremill.sttp" %% "core" % "1.5.11",
"com.softwaremill.sttp" %% "async-http-client-backend-future" % "1.5.11"