AWS s3 和 minio 不兼容签名检查 url 参数是否包含;
AWS s3 and minio incompatibility signature checking if url params contains ;
我遇到 minio(RELEASE.2019-07-17T22-54-12Z)
和 AWS S3
之间不兼容的问题
- 我请求为从
minio
下载文件生成预签名 URL
- 来自
minio
我得到了包含部分 response-content-disposition=attachment%3Bfilename%3D%22test.zip%22
的预签名 URL
- 然后
Google-HTTP-Java-Client/1.25.0
请求获取这个文件
minio
return 以下错误:
<?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>
...
</Error>
- 我发现签名是错误的,因为
Google-HTTP-Java-Client/1.25.0
在发送请求之前将 %3B
编码为 ;
,更改了签名
我的问题是为什么AWS S3
可以毫无问题地处理这个案例?
My question is why AWS S3 can handle this case without problems?
AWS S3 在涉及此类问题时是宽容的,因此即使请求存在问题,它也会接受请求。
检查是否使用相同的预签名-url 与带有 MinIO 的 curl
命令一起工作(因为 curl 不会修改 url.
这是 minio
中的错误。我已经在这里报告了:https://github.com/minio/minio/issues/8897
我可以确认 minio(RELEASE.2020-01-16T22-40-29Z)
的最后一个版本也受到影响。
我遇到 minio(RELEASE.2019-07-17T22-54-12Z)
和 AWS S3
- 我请求为从
minio
下载文件生成预签名 URL
- 来自
minio
我得到了包含部分response-content-disposition=attachment%3Bfilename%3D%22test.zip%22
的预签名 URL
- 然后
Google-HTTP-Java-Client/1.25.0
请求获取这个文件 minio
return 以下错误:
<?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>
...
</Error>
- 我发现签名是错误的,因为
Google-HTTP-Java-Client/1.25.0
在发送请求之前将%3B
编码为;
,更改了签名
我的问题是为什么AWS S3
可以毫无问题地处理这个案例?
My question is why AWS S3 can handle this case without problems?
AWS S3 在涉及此类问题时是宽容的,因此即使请求存在问题,它也会接受请求。
检查是否使用相同的预签名-url 与带有 MinIO 的 curl
命令一起工作(因为 curl 不会修改 url.
这是 minio
中的错误。我已经在这里报告了:https://github.com/minio/minio/issues/8897
我可以确认 minio(RELEASE.2020-01-16T22-40-29Z)
的最后一个版本也受到影响。