问题描述
我正在为 java 应用程序使用 quarkus 框架。我创建了 2 个用于使用文件数据的 api。
@POST
@Path("file")
@Consumes(MediaType.APPLICATION_OCTET_STREAM)
@Produces(MediaType.APPLICATION_JSON)
public Response uploadFile(byte[] fileData) {
System.out.println("Received file of size = " + fileData.length);
String s = new String(fileData);
return Response.ok().build();
}
@POST
@Path("files")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public void uploadFile(@MultipartForm FormData fileData) throws IOException {
System.out.println("Received file of size = ");
System.out.println(fileData.file.length());
return Response.ok().build();
}
FormData 类看起来像这样
public class FormData {
@FormParam("file")
@PartType(MediaType.APPLICATION_OCTET_STREAM)
public File file;
}
虽然这两个其余端点都适用于小文件。但是,如果我上传 700MB 大的文件,第一个端点会因 OOM 问题而失败,而使用 multipart-form 的文件上传成功。有人能解释一下在分段上传的情况下如何管理内存吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)