<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                之前我們介紹了常規的訪問時數據處理機制,那種機制很適合像圖片縮略圖之類的訪問,但無法應用數據處理過程較長的資源,比如花費時間超過一分鐘的音頻轉碼,更不用說可能處理時間超過一小時的視頻轉碼。 **處理結果持久化機制(pfop)**用于滿足這種處理時間較長的場景。 > 開發者可使用該功能對音視頻進行異步轉碼,并將轉碼結果永久存儲于空間中,從而大幅提升訪問體驗。 > > 處理結果持久化功能還提供即時的處理狀態通知和查詢功能,因此開發者在開始執行音視頻轉碼后還能隨時獲取轉碼進度信息。 處理結果持久化功能可以在兩種場景下觸發: 1. 在資源上傳完成后自動觸發處理流程; 2. 針對已存在空間中的資源手動觸發處理流程; 下面分別描述這兩種詳細用法。 ## 上傳后自動觸發數據處理 開發者如果希望在上傳文件后自動觸發數據處理過程,需要在構造[上傳憑證](http://developer.qiniu.com/docs/v6/api/reference/security/upload-token.html "上傳憑證")時在[上傳策略](http://developer.qiniu.com/docs/v6/api/reference/security/put-policy.html "上傳策略")中設置`persistentOps`和`persistentNotifyUrl`兩個字段。 | 字段 | 類型 | 含義 | | --- | --- | --- | | `persistentOps` | string | 需要進行的數據處理命令,可以指定多個命令,以`;`分隔,具體含義見[persistentOps詳解](http://developer.qiniu.com/docs/v6/api/reference/security/put-policy.html#put-policy-persistent-ops-explanation)。每一個數據處理命令都應遵循標準格式,參見[數據處理(fop)](http://developer.qiniu.com/docs/v6/api/overview/fop/fop.html "數據處理")。 | | `persistentNotifyUrl` | string | 用戶接收視頻處理結果的接口URL。設置`persistentOps`字段時,本字段必須同時設置。未來該設置項將改為可選,如未設置,則只能使用返回的`persistentId`主動查詢處理進度。 | 用戶使用指定了`persistentOps`和`persistentNotifyUrl`的上傳憑證上傳一個文件之后,服務端返回的響應內容中會包含此次異步處理的進程ID`persistentId`,該ID可用于獲取處理的進度和結果。 針對用戶上傳策略的不同,返回的`persistentId`字段會出現在不同的位置: 1. 設置`returnUrl`或`callbackUrl`,響應內容中直接帶有`persistentId`字段; 2. 設置了`returnUrl`但沒有設置`returnBody`,跳轉過程附帶的upload_ret參數解碼后獲得的結果中默認帶有`persistentId`字段; 3. 設置了callbackUrl,但沒有設置callbackBody,和之前一樣,這種情況下上傳會失敗; 4. 設置了returnUrl或callbackUrl,且根據需求自定義了相應的Body(`returnBody`?或?`callbackBody`),要在Body中使用魔法變量`$(persistentId)`?來得到。 ## 對已有資源手動觸發數據處理 如果需要對已存在于空間中的資源進行處理并持久化處理結果,可按以下方式使用我們的異步處理接口: ~~~ POST /pfop HTTP/1.1 Host: api.qiniu.com Content-Type: application/x-www-form-urlencoded Authorization: QBox <AccessToken> bucket=<urlEncodedBucket>&key=<urlEncodedKey>&fops=<urlEncodedFops>&notifyURL=<urlEncodedPersistentNotifyUrl>&force=<Force> ~~~ 其中的`AccessToken`的生成算法可參見[管理憑證規格](http://developer.qiniu.com/docs/v6/api/reference/security/access-token.html "管理憑證")。 正常情況下獲得的返回: ~~~ HTTP/1.1 200 OK Content-Type: application/json Content-Length: <length> {"persistentId": <persistentId>} ~~~ 處理完成后會向用戶指定的`notifyURL`發送處理結果,用戶也可以根據`persistentId`來主動查詢。詳情可以參考:[處理狀態通知和查詢](http://developer.qiniu.com/docs/v6/api/overview/fop/persistent-fop.html#pfop-status)。 ## 狀態通知和查詢 處理過程的狀態可通過兩種方式獲取: 1. 上傳時設定`persistentNotifyUrl`字段,則該URL會收到主動的通知。 服務端完成所有的數據處理后,會以 HTTP POST 的方式將處理狀態發送給用戶指定的通知URL。 2. 隨時手動發起一個查詢請求。 開發者可以使用上傳時返回的`persistentId`來隨時查詢數據處理的狀態。查詢的接口為: ~~~ [GET] http://api.qiniu.com/status/get/prefop?id=<persistentId> ~~~ 用戶獲得的數據處理狀態是一個JSON字符串,內容格式如下: ~~~ { "id": "<persistentId>", "code": <overall_result>, "desc": "<overall_result_description>", "items": [ ... { "cmd": "<fop_cmd>", "code": <result>, "desc": "<result_description>", "error": "<error_description>", "hash": "<result_hash>", "key": "<result_key>" } ... ] } ~~~ 狀態內容中每個字段的詳細含義如下: | 字段 | 類型 | 含義 | | --- | --- | --- | | id | string | 數據處理的進程ID,即前文中的`persistentId`。 | | code | int | 狀態碼,0 表示成功,1 表示等待處理,2 表示正在處理,3 表示處理失敗,4 表示回調失敗。 | | desc | string | 狀態碼對應的詳細描述。 | | items | | JSON數組。包含每個數據處理操作的進度信息。 | | cmd | string | 對應一個特定的數據處理命令。 | | error | string | 如果處理失敗,這個字段會給出詳細的失敗原因。 | | hash | string | 數據處理結果的哈希值。 | | key | string | 數據處理結果的唯一資源ID。數據處理結果可通過`http:///`訪問。 | ## 示例 上傳一個音頻文件persistent.mp3,并設置上傳策略中的`persistentOp`字段為這兩個命令:`avthumb/mp3/aq/6/ar/16000`、`avthumb/mp3/ar/44100/ab/32k`。 通知接口或主動查詢收到的處理狀態內容將如下所示: ~~~ { 'code': 0, 'id': '168739cd2fn1g76f13', 'desc': 'The fop was completed successfully', 'items': [ { 'code': 0, 'hash': 'FvvxM7gMI6WfiuXlBgKbkzU67Tpa', 'cmd': 'avthumb/mp3/ar/44100/ab/32k', 'key': 'sFhZ4dSjB1zvL3De1UBX2qZ_VR0=/lgxucMCQso_KOW_YDM-_KVIeX6o5', 'error': '', 'desc': 'The fop was completed successfully' }, { 'code': 0, 'hash': 'FpSzDMYJtP_UY_6EMIyaBe4awXp3', 'cmd': 'avthumb/mp3/aq/6/ar/16000', 'key': '1G8-OWwP3jPLvi7O3qOf7yCl4YI=/lgxucMCQso_KOW_YDM-_KVIeX6o5', 'error': '', 'desc': 'The fop was completed successfully' } ] } ~~~ 訪問鏈接: * [原文件](http://t-test.qiniudn.com/persistent.mp3) * [處理1(avthumb/mp3/aq/6/ar/16000)結果](http://t-test.qiniudn.com/1G8-OWwP3jPLvi7O3qOf7yCl4YI=/lgxucMCQso_KOW_YDM-_KVIeX6o5) * [處理2(avthumb/mp3/ar/44100/ab/32k)結果](http://t-test.qiniudn.com/sFhZ4dSjB1zvL3De1UBX2qZ_VR0=/lgxucMCQso_KOW_YDM-_KVIeX6o5)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看