gpt4 book ai didi

java - 通过API网关将带有特殊字符(+)的文件上传到S3

转载 作者:行者123 更新时间:2023-12-01 23:00:02 26 4
gpt4 key购买 nike

我已经设置了一个API网关,可以与S3很好地兼容。它还可以处理许多特殊字符,例如space, -, %, etc.

唯一的问题是文件名包括+符号。

尝试发送名为my+file.txt的文件。

API网关中没有Lambda。它仅配置为将请求映射到S3



我正在使用以下请求测试API网关:

request test

有了这个请求,我得到以下错误响应:


SignatureDoesNotMatch我们计算出的请求签名与您提供的签名不匹配。检查您的密钥和签名方法。




以下是API网关请求的相关执行日志:

Thu Oct 17 07:06:56 UTC 2019 : HTTP Method: PUT, Resource Path: /to-device/my%2Bfile.txt
Thu Oct 17 07:06:56 UTC 2019 : Method request path: {bucket=to-device, object=my%2Bfile.txt}
Thu Oct 17 07:06:56 UTC 2019 : Method request query string: {}
Thu Oct 17 07:06:56 UTC 2019 : Method request headers: {}
Thu Oct 17 07:06:56 UTC 2019 : Method request body before transformations:
Thu Oct 17 07:06:57 UTC 2019 : Endpoint request URI: https://****.amazonaws.com/to-device/my+file.txt

Thu Oct 17 07:06:57 UTC 2019 : Endpoint request body after transformations:
Thu Oct 17 07:06:57 UTC 2019 : Sending request to https://****.amazonaws.com/to-device/my+file.txt
Thu Oct 17 07:06:57 UTC 2019 : Received response. Status: 403, Integration latency: 30 ms
Thu Oct 17 07:06:57 UTC 2019 : Endpoint response headers:
{
x-amz-request-id=*,
x-amz-id-2=*,
Content-Type=application/xml,
Transfer-Encoding=chunked,
Date=Thu,
17 Oct 2019 07:06:56 GMT,
Server=AmazonS3
}

Thu Oct 17 07:06:57 UTC 2019 : Endpoint response body before transformations: <?xml version="1.0" encoding="UTF-8"?>
<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><AWSAccessKeyId>



我认为关于API网关解码输入和将解码请求映射到S3而不是仅仅传递给S3的问题。

这是什么问题?

如何将带有 +登录名的文件发送到S3?

最佳答案

在这种情况下,您需要编码url +符号将用%2B编码。
当您解码时,您将获得+。

关于java - 通过API网关将带有特殊字符(+)的文件上传到S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58425841/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com