簡體   English   中英

我可以使用 OkHttp3 客戶端從 Amazon S3 Presigned URL 獲取 header 詳細信息“Content-Length”嗎?

[英]Can I get the header detail “Content-Length” from an Amazon S3 Presigned URL using OkHttp3 client?

我們有一些 Java 服務將文件上傳到 S3 兼容存儲並生成預簽名 URL。 其他 Java 服務接收此類 URL 並處理文件。 我們需要這個文件的內容長度,而不是從正文加載整個 object。 這可能嗎? 如果是,如何?

我們通過上傳

com.amazonaws.services.s3.AmazonS3.putObject()

並創建 URL

com.amazonaws.services.s3.AmazonS3.generatePresignedUrl()

當我使用 S3 瀏覽器檢查文件的 Http 標頭時,我可以看到正確的 Content-Length 條目。

但是在我們使用的服務中

OkHttpClient.newCall(
    new Builder().get()
        .url(url).build()
).execute();

在那些響應對象中沒有內容長度。

如果響應是流式傳輸(HTTP/1.1 分塊)或壓縮的,那么它將沒有內容長度可供讀取。 您可能可以使用 HEAD 請求來獲取沒有正文的標頭並首先檢查。

https://stackoverflow.com/a/38673237/1542667

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM