全部產品
Search
文件中心

Cloud Phone:檔案與應用分發最佳實務

更新時間:Aug 12, 2025

SendFile介面可用於將OSS檔案上傳到雲手機的指定目錄,或者通過應用安裝包公網下載連結實現批量上傳到雲手機指定目錄並自動安裝。本文通過四個典型情境樣本介紹如何使用該介面來分發檔案和應用。

前提條件

  • 所有情境的通用前提條件:

    • 所有目標雲手機執行個體屬於同一個地區。

    • 所有目標雲手機執行個體的狀態為可用

  • 情境四(公網下載+內網分發模式)的特有前提條件:

    • 要傳入的第一個雲手機執行個體具備互連網存取權限。

    • 要傳入的第一個雲手機執行個體具備足夠容納待分發檔案或應用的儲存空間。

    • 您已提前開通Object Storage Service (OSS)產品。該情境下,僅第一個雲手機執行個體會從公網下載檔案或應用,然後將其上傳至您名下的同一地區下的OSS Bucket中。

      重要

      OSS儲存將產生額外費用。關於計費詳情,請參見計費概述

情境一:上傳普通檔案

情境樣本

現有儲存在杭州地區的OSS Bucket中的檔案snapshot.png,需將其上傳到杭州地區的雲手機執行個體acp-c8rzmx8fnwba6****acp-5fc8mx8fnw9s5****的目錄/sdcard/Pictures中。

SendFile介面調用樣本

  • 請求報文

    {
        "AndroidInstanceIdList": [
            "acp-c8rzmx8fnwba6****",
            "acp-5fc8mx8fnw9s5****"
        ],
        "SourceFilePath": "/sdcard/Pictures",
        "UploadType": "OSS",
        "UploadUrl": "oss://cloudphone-saved-bucket-cn-hangzhou-****/picture/snapshot.png",
        "UploadEndpoint": "oss-cn-hangzhou-internal.aliyuncs.com"
    }
  • 響應報文

    {
      "TaskId": "t-gk0ahswe4blor****",
      "RequestId": "5D6FB544-F20E-14F8-B627-3F32C337****",
      "Data": [
        {
          "TaskId": "t-gk0ahswe4blor****",
          "AndroidInstanceId": "acp-c8rzmx8fnwba6****"
        },
        {
          "TaskId": "t-gk0ahswe4blor****",
          "AndroidInstanceId": "acp-5fc8mx8fnw9s5****"
        }
      ]
    }

情境二:上傳應用安裝包並自動安裝應用

情境樣本

現有儲存在杭州地區的OSS Bucket中的應用安裝包SogouInput_12.15.0_android_sweb.apk,需實現以下目標:

  1. 將其上傳到杭州地區的雲手機執行個體acp-c8rzmx8fnwba6****acp-5fc8mx8fnw9s5****的目錄/sdcard/Download中。

  2. 將其重新命名為sougou.apk

  3. 上傳成功後自動安裝該應用。

SendFile介面調用樣本

  • 請求報文

    {
        "AndroidInstanceIdList": [
            "acp-c8rzmx8fnwba6****",
            "acp-5fc8mx8fnw9s5****"
        ],
        "SourceFilePath": "/sdcard/Download",
        "UploadType": "OSS",
        "UploadUrl": "oss://cloudphone-saved-bucket-cn-hangzhou-****/app/SogouInput_12.15.0_android_sweb.apk",
        "UploadEndpoint": "oss-cn-hangzhou-internal.aliyuncs.com",
        "TargetFileName": "sougou.apk",
        "AutoInstall": "true"
    }
  • 響應報文

    {
      "TaskId": "t-gk0ahswe4blor****",
      "RequestId": "5D6FB544-F20E-14F8-B627-3F32C337****",
      "Data": [
        {
          "TaskId": "t-gk0ahswe4blor****",
          "AndroidInstanceId": "acp-c8rzmx8fnwba6****"
        },
        {
          "TaskId": "t-gk0ahswe4blor****",
          "AndroidInstanceId": "acp-5fc8mx8fnw9s5****"
        }
      ]
    }

情境三:通過公網下載應用安裝包並自動安裝(公網逐一下載模式)

情境樣本

現有某應用安裝包的下載連結https://apkdl.example.com/wapdl/android/apk/SogouInput_12.15.0_android_sweb.apk,需實現以下目標:

  1. 杭州地區的雲手機執行個體acp-c8rzmx8fnwba6****acp-5fc8mx8fnw9s5****分別從公網下載該安裝包並儲存到目錄/sdcard/Download/中,同時重新命名為sougou.apk

  2. 下載成功後自動安裝應用。

SendFile介面調用樣本

  • 請求報文

    {
        "AndroidInstanceIdList": [
            "acp-c8rzmx8fnwba6****",
            "acp-5fc8mx8fnw9s5****"
        ],
        "SourceFilePath": "/sdcard/Download/sougou.apk",
        "UploadType": "DOWNLOAD_URL",
        "UploadUrl": "https://apkdl.example.com/wapdl/android/apk/SogouInput_12.15.0_android_sweb.apk",
        "AutoInstall": "true"
    }
  • 響應報文

    {
      "TaskId": "t-gk0ahswe4blor****",
      "RequestId": "5D6FB544-F20E-14F8-B627-3F32C337****",
      "Data": [
        {
          "TaskId": "t-gk0ahswe4blor****",
          "AndroidInstanceId": "acp-c8rzmx8fnwba6****"
        },
        {
          "TaskId": "t-gk0ahswe4blor****",
          "AndroidInstanceId": "acp-5fc8mx8fnw9s5****"
        }
      ]
    }

情境四:通過公網下載應用安裝包並自動安裝(公網下載+內網分發模式)

情境樣本

現有某應用安裝包的下載連結https://apkdl.example.com/wapdl/android/apk/SogouInput_12.15.0_android_sweb.apk,需實現以下目標:

  1. 杭州地區的雲手機執行個體1acp-c8rzmx8fnwba6****(該執行個體已開通互連網存取權限)從公網下載該安裝包並儲存到目錄/sdcard/Download/中,同時重新命名為sougou.apk,然後自動安裝該應用。

  2. 通過內網將該安裝包上傳至您名下相同地區的預設OSS Bucket中。

  3. 將該安裝包通過內網分發至相同地區的其他指定雲手機執行個體,例如雲手機執行個體2acp-5fc8mx8fnw9s5****,然後自動安裝該應用。

說明
  • 該情境下,第一台雲手機執行個體必須開通互連網存取權限,且具備足夠的儲存空間,否則無法下載和儲存應用安裝包。

  • 與情境三相比,該情境可節省公網流量費用,但由於使用了預設的OSS Bucket作為中轉站,因此也會產生額外的儲存費用,請按需選用。

SendFile介面調用樣本

  • 請求報文

    {
        "AndroidInstanceIdList": [
            "acp-c8rzmx8fnwba6****",
            "acp-5fc8mx8fnw9s5****"
        ],
        "SourceFilePath": "/sdcard/Download",
        "UploadType": "OSS_BRIDGED",
        "UploadUrl": "https://apkdl.example.com/wapdl/android/apk/SogouInput_12.15.0_android_sweb.apk",
        "UploadEndpoint": "oss-cn-hangzhou-internal.aliyuncs.com",
        "TargetFileName": "sougou.apk",
        "AutoInstall": "true"
    }
  • 響應報文

    {
      "TaskId": "t-gk0ahswe4blor****",
      "RequestId": "5D6FB544-F20E-14F8-B627-3F32C337****",
      "Data": [
        {
          "TaskId": "t-gk0ahswe4blor****",
          "AndroidInstanceId": "acp-c8rzmx8fnwba6****"
        },
        {
          "TaskId": "t-gk0ahswe4blor****",
          "AndroidInstanceId": "acp-5fc8mx8fnw9s5****"
        }
      ]
    }

後續步驟

介面調用成功後,可以調用DescribeTasks - 查詢任務介面,根據返回的TaskId來查詢上傳任務的進度和狀態。

情境對比

  • 情境一和情境二:如果待分發的檔案或應用安裝包儲存在與雲手機執行個體同地區的OSS Bucket中,則無影雲手機將為您做內網分發,不消耗公網流量;

  • 情境三:如果待分發的檔案或應用安裝包儲存在公網上,則無影雲手機將從公網下載多份並分發至您的雲手機上,請注意您的公網流量消耗;

  • 情境四:如果待分發的檔案或應用安裝包儲存在公網上,則無影雲手機將為您從公網下載一份檔案或應用安裝包,並緩衝在您名下的相同地區OSS Bucket中,然後通過內網分發到其他所有雲手機上,因此僅需消耗少量公網流量。