为什么在尝试将文件上传到 minio 存储桶时,尽管凭据正确,但会出现异常签名不匹配?

Why does the exception signature mismatch occurs although the credentials is correct while trying to upload the files to minio bucket?

提问人:Gaurav 提问时间:11/15/2023 最后编辑:Gaurav 更新时间:11/15/2023 访问量:29

问:

我正在尝试连接我的minio并通过它上传文件。我已经在本地启动并运行了minio服务器。我已经通过浏览器登录了,它可以访问。但是在代码中,当将文件上传到存储桶中时,它说:

io.minio.errors.ErrorResponseException: The request signature we calculated does not match the signature you provided. Check your key and signing method.
    at io.minio.S3Base$1.onResponse(S3Base.java:747) ~[minio-8.5.6.jar:8.5.6]
    at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519) ~[okhttp-4.10.0.jar:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
    at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]

当我尝试调试代码时,凭据与我通过浏览器登录的凭据相同。但是从我的代码级别来看,文件没有被上传。上传文件的代码如下:

 public ObjectWriteResponse uploadFile(byte[] file, String bucketName, String fileFullLocation, String contentType){
        Map<String, String> bucketNameAndFileMap = initializeBucketAndFileName(bucketName, fileFullLocation);
        var uploadObject = minioClient.putObject(
                PutObjectArgs
                        .builder()
                        .bucket(bucketNameAndFileMap.get(MessageAndVariableConstant.BUCKET_NAME))
                        .object(bucketNameAndFileMap.get(MessageAndVariableConstant.FILE_NAME))
                        .stream(new ByteArrayInputStream(file), file.length, -1)
                        .contentType(contentType)
                        .build());
        log.info(uploadObject.etag());
        return uploadObject;
    }
base url:http://127.0.0.1:9000
username:minioadmin
passwrod:minioadmin

我正在使用 Spring Boot 版本 3.1.4。 我很困惑我在哪里落后。感谢您:)的帮助。

我尝试在谷歌上搜索这个问题,最多问题是在密钥中,但在我的情况下,每个凭据都是正确的,但文件没有被上传,而这应该是。

java spring-boot minio

评论

0赞 Gaurav 11/15/2023
有人可以解释为什么我在没有任何评论或建议的情况下投了反对票吗?

答: 暂无答案