You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Using PutObjectArgs, I passed on the mime type that the ASP.NET Core request provided me. Recently, when uploading bigger json files (6MB+) I got an SignatureDoesNotMatch error (small files were still fine due to not using multipart behind the scenes).
After hours of investigating, I found out that if I pass on a value of application/json; charset=utf-8 it triggers this SignatureDoesNotMatch error. But if I cutoff the charset value and just use application/json, then it works.
I don't know if the charset would be valid under the S3 spec or not, but at least a validation of content type would be helpful.
My setup: test client (above) -> Dockerized proxy (yarp) -> Dockerized ASP.NET Core application (uploader) -> Dockerized MinIO server
I think this should be reduceable to client and MinIO server only.
Have a json file greater than about 6MB (important!)
Configure a PutObjectArgs object with application/json; charset=utf-8
Send it
Error: SignatureDoesNotMatch
Configure content type to be application/json only
Send it
No error, upload worked
Expectations
Validation of content type with an error message like "Mimetype invalid - it should be '/'"
Generally better exception: currently the message is only There is an error in XML document (2, 2). and inner exception only tells about an XmlSerializer error instead of the error described in the XML provided by MinIO server (<Error xmlns='http://s3.amazonaws.com/doc/2006-03-01/'> was not expected.) - I created Better Exception Messages In Case Of Server Errors #1009 for this point
Using
PutObjectArgs
, I passed on the mime type that the ASP.NET Core request provided me. Recently, when uploading bigger json files (6MB+) I got anSignatureDoesNotMatch
error (small files were still fine due to not using multipart behind the scenes).After hours of investigating, I found out that if I pass on a value of
application/json; charset=utf-8
it triggers thisSignatureDoesNotMatch
error. But if I cutoff the charset value and just useapplication/json
, then it works.I don't know if the charset would be valid under the S3 spec or not, but at least a validation of content type would be helpful.
Steps To Reproduce
Given this code:
My setup: test client (above) -> Dockerized proxy (yarp) -> Dockerized ASP.NET Core application (uploader) -> Dockerized MinIO server
I think this should be reduceable to client and MinIO server only.
PutObjectArgs
object withapplication/json; charset=utf-8
SignatureDoesNotMatch
application/json
onlyExpectations
There is an error in XML document (2, 2).
and inner exception only tells about an XmlSerializer error instead of the error described in the XML provided by MinIO server (<Error xmlns='http://s3.amazonaws.com/doc/2006-03-01/'> was not expected.
) - I created Better Exception Messages In Case Of Server Errors #1009 for this pointInfo
MinIO (NuGet): 6.0.2
MinIO (Server): 2024-02-06T21:36:22Z
The text was updated successfully, but these errors were encountered: