我有一个 Spring Boot 应用程序。用户可以登录我的应用程序并上传文件。用户的所有文件都存储在Google Cloud Storage中。现在,我希望用户能够下载他们的文件。所以,我必须从云存储下载文件。我不知道我的控制器应该是什么样子。使用我当前的代码,我得到一个空文件。上传已经完成,连接也正常。
public static Blob downloadFile(Storage storage, String fileName){
Blob blob = storage.get(BUCKET_NAME, fileName);
return blob;
}
@RequestMapping(value = "/downloadFileTest")
@ResponseBody
public void downloadFile(HttpSession session,
HttpServletResponse response) {
Storage storage = de.msm.msmcenter.service.cloudstorage.Authentication.getStorage();
Blob blob = de.msm.msmcenter.service.cloudstorage.Authentication.downloadFile(storage,"test.txt");
ReadChannel readChannel = blob.reader();
InputStream inputStream = Channels.newInputStream(readChannel);
try {
response.setContentType("application/force-download");
response.setHeader("Content-Disposition", "attachment; filename=test.txt");
IOUtils.copy(inputStream, response.getOutputStream());
response.flushBuffer();
inputStream.close();
} catch (Exception e){
e.printStackTrace();
}
}
我实际上希望能够下载任何文件,而不仅仅是txt。当用户打开链接时,会下载名为 test.txt 的文件,但它是空的。
红颜莎娜
哈士奇WWW
红糖糍粑
相关分类