【发布时间】:2018-04-12 08:39:19
【问题描述】:
我想向我的 Dropwizard 应用程序添加一个 GET 请求,以便返回从 Minio 服务器检索的文件。
考虑
@Path("/file")
public class FileResource {
@GET
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response getFile() throws Exception {
InputStream is = minioClient.getObject("mybucket", "myobject");
// timeout?
return Response.ok(is)
.header(HttpHeaders.CONTENT_DISPOSITION,
"attachment; filename=\"file.txt\"")
.build();
}
}
Dropwizard GET 请求会发生什么,然后从 Minio 检索文件需要很长时间,例如网速慢?
servlet 容器将文件从 Minio 复制到客户端是否正确,如果我将内容长度添加到响应中,请求会一直打开,直到复制完成?
【问题讨论】:
-
可能值得尝试使用 StreamingOutput 而不是返回 InputStream,例如stackoverflow.com/questions/12012724/…
-
我的以下问题是:InputStream 是分块还是整个输入流都加载到内存中?
-
似乎在 rest 调用中进行代理不符合 REST 的规范。
-
您能否详细说明一下,以便我可以将其标记为已接受的答案。
标签: java rest jetty dropwizard minio