minio分块上传之前进行文件校验是否已存在时候利minioClient.getObject出现

---------------------------------------------------------------------------------------------------------------------------------

NoSuchKey: The specified key does not exist.

ErrorResponse(code = NoSuchKey, message = The specified key does not exist., bucketName = video, objectName = 0, resource = /video/0, requestId = 176A9E1821C36F39, hostId = dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8)

---------------------------------------------------------------------------------------------------------------------------------

这种错误

具体代码如下:

filterInputStream=minioClient.getObject(GetObjectArgs.builder()
       .bucket(videobucket)
       .object(chunkFilePath)
       .build());
if (filterInputStream!=null){
//分块已经存在
log.info("分块文件已存在");
return RestResponse.success(true);
}

这里本来想着如果查询不到就会直接返回一个空值,就像数据库那样,结果报了错,后来去网上找错误解决办法,找了一圈都不符合或是解决不了,这里代码本身确实没有错误,但是重点在于minio不是数据库,在minio上面搜索不到是会报错的而不是返回一个空null,所以我们这里需要把异常捕获然后就不会报错影响程序的执行

修改后如下:

try {
filterInputStream=minioClient.getObject(GetObjectArgs.builder()
        .bucket(videobucket)
        .object(chunkFilePath)
        .build());
if (filterInputStream!=null){
 return RestResponse.success(true);
}
}catch (Exception e){

}

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐