[英]Return a file using Java Jersey
我正在使用Java Jersey來實現REST服務。 我的服務應該提供的一件事是文件下載選項。 這些文件非常大,並且是根據db的數據構建的。
目前我從數據庫中獲取所有數據並將其保存到文件並返回
Response.ok().entity(new FileInputStream(file)).build();
有沒有辦法如何在沒有從db完全下載數據的情況下開始提供文件,但是數據來自db會將其附加到輸出流?
使用JERSEY使用輸入和輸出二進制流的答案解決了這個問題?
怎么樣
File fileToSend = getFile();
return Response.ok(fileToSend, "application/zip").build();
可以將媒體類型設置為與正在發送的文件匹配。
這看起來非常簡單,但更重要的是,閱讀此內容的java專家是否會看到解決方案的性能問題?
取決於底層數據庫連接/驅動程序的類型,如果您有權訪問JDBC層(例如使用Hibernate),則應該可以使用JDBC Streaming API流式傳輸數據,然后從ResultSet中獲取Streams並將它們傳遞給Jersey的Response生成器。 我自己沒有這樣做..
點擊這里:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.