最近开发功能需要大文件上传,正常会在业务代码中封装一层minio的上传,为了避免中转,实现了minio直传的方式。这里
感谢tuine作者的指点。 大致描述下流程:
1、用户调用初始化接口,后端调用minio初始化,得到uploadId,生成每个分片的minio上传url
2、用户调用对应分片的上传地址,多次上传会覆盖
3、调用完成接口,后端查询所有上传的分片并合并
坑:在调用listParts时报错:
org.simpleframework.xml.core.ValueRequiredException: Empty value for @org.simpleframework.xml.Element(name=“DisplayName”, type=void.class, data=false, required=true) on field ‘displayName’ private java.lang.String io.minio.messages.Initiator.displayName in class io.minio.messages.Initiator at line 2
我的解决办法是:
自己写个client继承MinioClient,copy出io.minio.ListPartsResponse,io.minio.message.ListPartsResult,io.minio.messages.Initiator的源码出来,,把Initiator里面的displayName改成非必要: @Element(name = “DisplayName” , required = false ) private String displayName; 然后重新listParts,返回换成自己改过的结构,就可以了
转自:https://blog.csdn.net/Tuine/article/details/113996848?spm=1001.2014.3001.5501