2017-07-25 57 views
0

我至今嘗試過是如何直接從Java的Web服務器流S3對象瀏覽器

S3Object object = s3Object.getObject(new getObjectRequest(bucketName,FileName)); 
InputStreamResource inputStreamResource = object.getObjectContent(); 
// Setting Headers. 
return new ResponseEntity(inputStreamResource,headers, HttpStatus.OK); 

但這種代碼不流日期的瀏覽器。我首先下載到服務器,然後發送回瀏覽器,但要求是直接流到瀏覽器,而無需在服務器上下載。

任何僞代碼或鏈接都將有所幫助。

感謝

回答

4

與其說getObject()的,創建一個簽名的GET請求併發送一個302重定向到客戶端。瀏覽器將直接從亞馬遜檢索對象。如果你還沒有使用它,jets3t庫使得處理S3簽名更加簡單。

+0

在重定向我得到的迴應「只允許一個授權機制;只應該指定X-Amz算法查詢參數,簽名查詢字符串參數或授權標頭」 – San

+0

@San發佈代碼並說出您獲得的位置該消息。 – chrylis

+0

現在工作正常。請求的URL有另一個authToken,因此我們得到例外。 – San