Search code examples
amazon-s3minio

AWS s3 and minio incompatibility signature checking if url params contains ;


I have a problem with incompatibility between minio(RELEASE.2019-07-17T22-54-12Z) and AWS S3

  1. I request the generation of pre-signed URL for download file from minio
  2. From minio I got pre-signed URL that contains part response-content-disposition=attachment%3Bfilename%3D%22test.zip%22
  3. Then Google-HTTP-Java-Client/1.25.0 make the request to get this file
  4. minio return below error:
<?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>
  1. I have found out that signature is wrong because Google-HTTP-Java-Client/1.25.0 before send request encode %3B to ; that change signature

My question is why AWS S3 can handle this case without problems?


Solution

  • It is a bug in minio. I have reported it here: https://github.com/minio/minio/issues/8897 I can confirm that the last version of minio(RELEASE.2020-01-16T22-40-29Z) is also affected.