import org.apache.wink.common.model.multipart.BufferedInMultiPart;
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
@Path("/upload")
public RestResult upload(BufferedInMultiPart bimp) {
List<InPart> parts = bimp.getParts();
// ....
}
我添加了流的测试消耗,只是为了确保请求得到完全处理:
IOUtils.copy(part.getInputStream(), new NullOutputStream());
我已经用非常大的上传测试了整个 - 大约 100MB。我注意到 Websphere 服务器上的内存使用量急剧增加,比上传小文件要大得多。upload
我认为这是由于上传后和调用我的函数之前上传的文件被放入内存引起的。
是否可以配置该工具,以便将大文件读入某个临时文件而不是内存?
或者是否可以直接在 REST 通道方法中成为传入的输入流?
我正在使用 Websphere 8.5 和 JAX-WS REST 通道。