開發架構圖

典型的基於OSS的移動開發有四個組件:

  • OSS:提供上傳、下載、上傳回調等功能。
  • 開發人員的移動客戶端(App或者網頁應用),簡稱客戶端:通過開發人員提供的服務,間接使用OSS。
  • 應用伺服器:客戶端互動的伺服器。也是開發人員的商務服務器。
  • 阿里雲STS:頒發臨時憑證。

最佳實踐

開發商務程序

  • 臨時憑證授權的上傳

    如圖所示:



    具體步驟如下:

    1. 客戶端嚮應用伺服器發出上傳檔案到OSS的請求。
    2. 應用伺服器向STS伺服器請求一次,獲取臨時憑證。
    3. 應用伺服器回複客戶端,將臨時憑證返回給客戶端。
    4. 客戶端獲取上傳到OSS的授權(STS的AccessKey以及Token),調用OSS提供的移動端SDK上傳。
    5. 客戶端成功上傳數據到OSS。如果沒有設定回調,則流程結束。如果設定了回調功能,OSS會調用相關的介面。

    這裡有幾個要點:

    • 客戶端不需要每次都嚮應用伺服器請求授權,在第一次授權完成之後可以緩存STS返回的臨時憑證直到超過失效時間。
    • STS提供了強大的許可權控制功能,可以將客戶端的存取權限限制到Object等級,從而實現不同客戶端在OSS端上傳的Object的完全隔離,極大的提高了安全係數。

    更多資訊請參見授權給第三方上傳

  • 簽名URL授權的上傳和表單上傳

    如圖所示:



    具體步驟如下:

    1. 客戶端嚮應用伺服器發出上傳檔案到OSS的請求。
    2. 應用伺服器回複客戶端,將上傳憑證(簽名URL或者表單)返回給客戶端。
    3. 客戶端獲取上傳到OSS的授權(簽名URL或者表單),調用OSS提供的移動端SDK上傳或者直接表單上傳。
    4. 客戶端成功上傳數據到OSS。如果沒有設定回調,則流程結束。如果設定了回調功能,OSS會調用相關的介面。

    更多資訊請參見授權給第三方上傳

  • 臨時憑證授權的下載

    跟臨時憑證授權的上傳過程類似:

    1. 客戶端嚮應用伺服器發出下載OSS檔案的請求。
    2. 應用伺服器向STS伺服器請求一次,獲取臨時憑證。
    3. 應用伺服器回複客戶端,將臨時憑證返回給客戶端。
    4. 客戶端獲取下載OSS檔案的授權(STS的AccessKey以及Token),調用OSS提供的移動端SDK下載。
    5. 客戶端成功從OSS下載檔案。

    這裡有幾個要點:

    • 和上傳類似,客戶端對於臨時憑證也可以進行緩存從而提高訪問速度。
    • STS同樣也提供了精確到Object的下載許可權控制,和上傳許可權控制結合在一起可以實現各移動端在OSS上儲存空間的完全隔離。
  • 簽名URL授權的下載

    跟簽名URL授權的上傳類似:

    1. 客戶端嚮應用伺服器發出下載OSS檔案的請求。
    2. 應用伺服器回複客戶端,將簽名URL返回給客戶端。
    3. 客戶端獲取下載OSS檔案的授權(簽名URL),調用OSS提供的移動端SDK下載。
    4. 客戶端成功從OSS下載檔案。
    说明
    客戶端不能儲存開發人員的AccessKey,只能獲取應用伺服器簽名的URL或者是通過STS頒發的臨時憑證(也就是STS的AccessKey和Token)。

最佳實踐

功能使用參考