全部產品
Search
文件中心

Object Storage Service:如何?Python服務端簽名直傳回調

更新時間:Sep 25, 2024

本文以Python語言為例,講解在服務端通過Python程式碼完成簽名,並且設定上傳回調,然後通過表單直傳資料到OSS。

操作步驟

快速部署

您可以使用Resource Orchestration Service一鍵配置1個Elastic Compute Service執行個體和1個Object Storage Service Bucket,並在Elastic Compute Service執行個體上部署應用伺服器源碼(Python版本)用戶端源碼,從而快速體驗服務端簽名直傳回調。使用Resource Orchestration Service快速體驗服務端簽名直傳回調的操作步驟如下。

  1. 一鍵部署雲資源。

    1. 開啟一鍵配置模板連結

    2. 資源編排 ROS控制台,輸入資源棧名稱,輸入建立OSS Bucket的名稱,設定新購ECS的可用性區域、執行個體類型、系統硬碟類型、執行個體密碼,然後單擊創建

      資源棧的資源棧資訊頁簽下的狀態顯示建立中

    3. 資源棧的狀態顯示建立成功後,單擊輸出頁簽,查看一鍵部署的Elastic Compute Service執行個體、OSS Bucket等資源。

  2. 體驗服務端簽名直傳。

    1. 輸出頁簽下,複製UploadPath的值,然後在瀏覽器中開啟。

    2. OSS web直傳頁面,單擊選擇檔案,選擇指定類型的檔案,然後單擊開始上傳

  3. 體驗完成後,釋放測試資源,避免繼續產生費用。

    1. 資源棧頁面的右上方,單擊刪除

    2. 刪除資源棧頁面,確保刪除方式釋放資源,然後單擊確定

手動部署

前提條件

  • 應用伺服器對應的網域名稱可通過公網訪問。

  • 確保應用伺服器已經安裝Python 2.6以上版本(執行python --version命令進行查看)。

  • 確保PC端瀏覽器支援JavaScript。

步驟1:配置應用伺服器

  1. 下載應用伺服器源碼(Python版本)

  2. 本樣本中以Ubuntu 16.04為例,將源碼解壓到/home/aliyun/aliyun-oss-appserver-python目錄下。

  3. 進入該目錄,開啟源碼檔案appserver.py,修改如下的程式碼片段:

    # 阿里雲帳號AccessKey擁有所有API的存取權限,風險很高。強烈建議您建立並使用RAM使用者進行API訪問或日常營運,請登入RAM控制台建立RAM使用者。
    access_key_id = 'yourAccessKeyId'
    access_key_secret = 'yourAccessKeySecret'
    # 填寫Host地址,格式為https://bucketname.endpoint。
    host = 'https://examplebucket.oss-cn-hangzhou.aliyuncs.com'
    # 設定上傳回調URL,即回調伺服器位址,用於處理應用伺服器與OSS之間的通訊。OSS會在檔案上傳完成後,把檔案上傳資訊通過此回調URL發送給應用伺服器。
    callback_url = "https://192.168.0.0:8888"
    # 設定上傳到OSS檔案的首碼,可置空此項。置空後,檔案將上傳至Bucket的根目錄下。
    upload_dir = 'exampledir/'

步驟2:配置用戶端

  1. 下載用戶端源碼

  2. 解壓用戶端源碼檔案,本樣本解壓到D:\aliyun\aliyun-oss-appserver-js目錄。

  3. 進入該目錄,開啟upload.js檔案,找到下面的代碼語句:

    // serverUrl是使用者擷取簽名和Policy等資訊的應用伺服器的URL,請對應替換以下IP地址和Port連接埠資訊。
    serverUrl = 'http://192.0.2.0:8888'
  4. severUrl改成應用伺服器的地址,用戶端可以通過它可以擷取簽名直傳Policy等資訊。如本例中可修改為:serverUrl = 'https://192.168.0.0:8888'

步驟3:修改CORS

用戶端進行表單直傳到OSS時,會從瀏覽器向OSS發送帶有Origin的請求訊息。OSS對帶有Origin頭的請求訊息會進行跨域規則(CORS)的驗證。因此需要為Bucket設定跨域規則以支援Post方法。具體操作步驟,可參考跨網域設定

步驟4:體驗上傳回調

  1. 啟動應用伺服器。

    /home/aliyun-oss-appserver-python目錄下,執行python appserver.py 11.22.XX.XX 1234命令啟動應用伺服器。

    說明

    請將IP地址和連接埠改成您配置的應用伺服器的IP地址和連接埠。

  2. 啟動用戶端。

    在PC側的用戶端源碼目錄中,開啟index.html檔案。

    重要

    index.html檔案不保證相容IE 10以下版本瀏覽器,若使用IE 10以下版本瀏覽器出現問題時,您需要自行調試。

  3. 上傳檔案。

    單擊選擇檔案,選擇指定類型的檔案後,單擊開始上傳。上傳成功後,顯示回調伺服器返回的內容。