亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Spring Boot 中流式傳輸/下載文件而不保存在內存中

在 Spring Boot 中流式傳輸/下載文件而不保存在內存中

慕妹3146593 2022-06-04 17:13:23
我的應用程序使用 Google Cloud Storage 存儲大文件并使用 Spring Boot 作為后端。我剛剛完成了負責下載的控制器的實現,按照我認為可能是正確的,但是我從瀏覽器得到的行為不是我所期望的。步驟如果我嘗試下載文件,將發生以下情況:使用 ReadChannel 從谷歌云存儲中讀取文件(“blob”)通道寫入 ByteArrayOutputStream;通道使用緩沖區寫入ByteArrayOutputStream 在 InputStreamResource 中轉換然后在 ResponseEntity 中傳遞 inputStream 資源意外的行為如果用戶去下載的控制器,并要求一個特定的文件,該文件首先完全加載到服務器上,然后提供給客戶端。同時,客戶端看到服務器“沒有響應”(因為服務器正在加載文件),這不好。當文件完全加載到服務器上時,會很快出現在“已下載”中。我想要的是避免“無響應”部分,并將文件流式傳輸到客戶端,就像您嘗試下載大文件時通常發生的那樣,您會在 Chrome 中看到文件周圍的“下載”輪.任何幫助理解以下代碼有什么問題將不勝感激!
查看完整描述

1 回答

?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

根據您的問題,您的存儲桶中的對象是私有的,您希望為有限的一群人授予對它們的訪問權限。如果是這樣 - 簽名 URL 就是您所需要的。

您可以為存儲桶中的特定對象生成簽名 URL,并將您的用戶重定向到生成的 URL - 因此他將自己下載文件。


查看完整回答
反對 回復 2022-06-04
  • 1 回答
  • 0 關注
  • 508 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號