SendFile API を使用して、Object Storage Service (OSS) から Cloud Phone インスタンス上の指定されたフォルダにファイルをアップロードできます。また、公開ダウンロードリンクを使用して、アプリケーションパッケージを複数の Cloud Phone インスタンス上の指定されたフォルダにアップロードし、アプリケーションを自動的にインストールすることもできます。このトピックでは、この API を使用してファイルとアプリケーションを配信する方法を示す 4 つの典型的なシナリオについて説明します。
前提条件
すべてのシナリオに共通の前提条件:
すべてのターゲット Cloud Phone インスタンスが同じリージョンにあること。
すべてのターゲット Cloud Phone インスタンスのステータスが [アクティブ] であること。
シナリオ 4 (インターネットダウンロードと内部配信) の特定の前提条件:
ファイルを送信する最初の Cloud Phone インスタンスにインターネットアクセス権限があること。
最初の Cloud Phone インスタンスに、配信するファイルまたはアプリケーションのための十分なストレージ容量があること。
Object Storage Service (OSS) をアクティベート済みであること。このシナリオでは、最初の Cloud Phone インスタンスのみがインターネットからファイルまたはアプリケーションをダウンロードします。その後、インスタンスは同じリージョンにあるお客様所有の OSS バケットにファイルまたはアプリケーションをアップロードします。
重要OSS ストレージには追加料金が発生します。詳細については、「課金の概要」をご参照ください。
シナリオ 1: 通常のファイルをアップロードする
シナリオ
中国 (杭州) リージョンの OSS バケットから、同じリージョンにある Cloud Phone インスタンス acp-c8rzmx8fnwba6**** および acp-5fc8mx8fnw9s5**** の /sdcard/Pictures フォルダに、ファイル snapshot.png をアップロードする必要があります。
SendFile API 呼び出しの例
リクエストメッセージ
{ "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****" } ] }
シナリオ 2: アプリケーションパッケージをアップロードして自動的にインストールする
シナリオ
中国 (杭州) リージョンの OSS バケットに SogouInput_12.15.0_android_sweb.apk という名前のアプリケーションパッケージがあります。次のタスクを実行する必要があります:
中国 (杭州) リージョンの Cloud Phone インスタンス
acp-c8rzmx8fnwba6****およびacp-5fc8mx8fnw9s5****の/sdcard/Downloadフォルダにパッケージをアップロードします。パッケージ名を
sougou.apkに変更します。アップロード完了後、アプリケーションを自動的にインストールします。
SendFile API 呼び出しの例
リクエストメッセージ
{ "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****" } ] }
シナリオ 3: インターネットからアプリケーションパッケージをダウンロードして自動的にインストールする (個別ダウンロードモード)
シナリオ
アプリケーションパッケージのダウンロードリンク https://apkdl.example.com/wapdl/android/apk/SogouInput_12.15.0_android_sweb.apk があります。次のタスクを実行する必要があります:
中国 (杭州) リージョンの Cloud Phone インスタンス
acp-c8rzmx8fnwba6****およびacp-5fc8mx8fnw9s5****が、インターネットからパッケージを個別にダウンロードし、/sdcard/Downloadフォルダに保存して、名前をsougou.apkに変更します。ダウンロード完了後、アプリケーションを自動的にインストールします。
SendFile API 呼び出しの例
リクエストメッセージ
{ "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****" } ] }
シナリオ 4: インターネットからアプリケーションパッケージをダウンロードして自動的にインストールする (インターネットダウンロードと内部配信モード)
シナリオ
アプリケーションパッケージのダウンロードリンク https://apkdl.example.com/wapdl/android/apk/SogouInput_12.15.0_android_sweb.apk があります。次のタスクを実行する必要があります:
インターネットアクセス権を持つ中国 (杭州) リージョンの Cloud Phone インスタンス 1 (
acp-c8rzmx8fnwba6****) が、インターネットからパッケージをダウンロードします。その後、パッケージを/sdcard/Downloadフォルダに保存し、名前をsougou.apkに変更して、アプリケーションを自動的にインストールします。内部ネットワーク経由で、同じリージョンにあるお客様所有のデフォルト OSS バケットにパッケージをアップロードします。
内部ネットワーク経由で、Cloud Phone インスタンス 2 (
acp-5fc8mx8fnw9s5****) など、同じリージョン内の他の指定された Cloud Phone インスタンスにパッケージを配信し、アプリケーションを自動的にインストールします。
このシナリオでは、最初の Cloud Phone インスタンスにインターネットアクセス権限と十分なストレージ容量が必要です。そうでない場合、アプリケーションパッケージはダウンロードおよび保存できません。
シナリオ 3 と比較して、このシナリオはデータ転送コストを削減します。ただし、デフォルトの OSS バケットを中継点として使用するため、追加のストレージコストも発生します。ニーズに最も適したシナリオを選択してください。
SendFile API 呼び出しの例
リクエストメッセージ
{ "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****" } ] }
次のステップ
API 呼び出しが成功した後、DescribeTasks API を呼び出して、返された TaskId を使用してタスクの進捗状況とステータスをクエリできます。
シナリオの比較
シナリオ 1 と 2: 配信したいファイルまたはアプリケーションパッケージが Cloud Phone インスタンスと同じリージョンにある OSS バケットに保存されている場合、Cloud Phone は内部ネットワーク経由で配信します。このプロセスではインターネットトラフィックは消費されません。
シナリオ 3: 配信したいファイルまたはアプリケーションパッケージがインターネット上にある場合、Cloud Phone はインターネットから複数のコピーをダウンロードし、Cloud Phone インスタンスに配信します。このプロセスではインターネットトラフィックが消費されます。
シナリオ 4: 配信したいファイルまたはアプリケーションパッケージがインターネット上にある場合、Cloud Phone はインターネットからファイルまたはパッケージのコピーを 1 つダウンロードします。その後、同じリージョンにあるお客様所有の OSS バケットにコピーをキャッシュします。次に、内部ネットワーク経由で他のすべての Cloud Phone インスタンスにコピーを配信します。このプロセスでは、少量のインターネットトラフィックしか消費されません。