全部產品
Search
文件中心

Object Storage Service:下載OSS檔案偶爾出現無法下載

更新時間:Jun 19, 2024

問題描述

下載OSS檔案時,偶爾出現檔案無法下載的情況。

問題原因

經對比分析,發現下載失敗的HTTP回應標頭中無Cache-Control回應標頭,並且Server欄位的值為空白。而正常下載的情況下,有Cache-Control回應標頭,並且Server欄位正常顯示,因此確認此問題可能為劫持問題,實際最終請求並不是OSS響應,或經過OSS響應但被劫持。

解決方案

排查方法

請進行抓包驗證:

  • 異常包抓包驗證:下圖為檔案下載異常情況下用戶端的抓包資料,可以看到回應標頭的Server欄位為空白值,並且用戶端和OSS的TCP握手包(1153號報文)TTL(Time to live)顯示為64。 根據上圖所示,通過以下兩個異常資訊,基本可以判斷是劫持行為。

    • 如果是OSS返回的回應標頭,Server必然會顯示AliyunOSS。

    • 由於預設情況下OSS響應TCP/HTTP請求時,響應的報文中TTL為64,而TTL每經過一跳需要減去1,因此不可能到用戶端以後還是64。

  • 正常包抓包驗證:下圖為檔案下載正常的情況下用戶端的抓包資料,可以看到回應標頭的Server欄位為AliyunOSS,這個是正常的欄位。TTL(Time to live)的值為53,確認TTL值在正常的範圍。

解決方案

  1. 擷取本次請求中捕捉的RequestID。

  2. 根據檔案下載異常情況下的請求中擷取的RequestID,查看OSS的日誌。檔案實際是通過阿里雲ECS上傳,但是日誌中顯示該次請求的用戶端IP非阿里雲ECS的公網IP,由此可以說明這次請求並不是ECS直接到OSS,有可能是在使用者側配置了相關的代理,或者是下載流量被劫持導致。

    說明

    使用者在訪問OSS資源時,會產生大量的訪問日誌,為方便您的查詢,您可以開啟日誌儲存功能,詳情請參見設定日誌轉存

  3. 建議您排查網路環境,並同步使用HTTPS請求測試,如何通過OSS實現HTTPS訪問請參見OSS實現HTTPS訪問的方式

適用於

  • Object Storage Service