すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:GenerateOTAUploadURL

最終更新日:Apr 17, 2025

Object Storage Service (OSS) にアップデートパッケージファイルをアップロードするために必要な URL とその他の情報を生成します。

使用方法

この操作は、他の操作と組み合わせてアップデートパッケージを作成するために使用できます。手順:

1. この API 操作を呼び出して、OSS にアップロードするアップデートパッケージファイルの詳細を生成します。

次のセクションでは、この API 操作のレスポンスパラメータについて説明します。

  • 更新パッケージファイルをアップロードするために使用する OSS PostObject 操作の次のリクエストパラメーター: Host KeyOSSAccessKeyIdSignature、および Policy

  • 更新パッケージを作成するために使用される CreateOTAFirmware 操作の次のリクエストパラメータ : FirmwareUrl

2. OSS SDK を使用して PostObject 操作を呼び出し、アップデートパッケージファイルをアップロードします。サンプルコードの詳細については、「レスポンスパラメータの使用方法」セクションをご参照ください。

重要

この操作によって返されるパラメータ情報は 1 分間有効です。1 分以内にアップデートパッケージファイルをアップロードする必要があります。アップロードされるアップデートパッケージファイルの最大サイズは 1,000 MB です。

3. アップデートパッケージファイルがアップロードされた後、CreateOTAFirmware 操作を呼び出して、60 分以内にアップデートパッケージを作成します。

アップデートパッケージファイルがアップロードされても、CreateOTAFirmware 操作を呼び出してファイルのアップデートパッケージを作成しない場合、アップロードされたファイルはシステムによって定期的に自動的に削除されます。

QPS 制限

各 Alibaba Cloud アカウントは、最大 10 クエリ/秒 (QPS) を実行できます。

説明

Alibaba Cloud アカウントの RAM ユーザーは、Alibaba Cloud アカウントのクォータを共有します。

デバッグ

OpenAPI Explorer は署名値を自動的に計算します。便宜上、OpenAPI Explorer でこの操作を呼び出すことをお勧めします。 OpenAPI Explorer は、さまざまな SDK の操作のサンプルコードを動的に生成します。

リクエストパラメータ

パラメータ

タイプ

必須

説明

Action

String

はい

GenerateOTAUploadURL

実行する操作。値を GenerateOTAUploadURL に設定します。

IotInstanceId

String

いいえ

iot-cn-0pp1n8t****

インスタンスの ID。IoT Platform コンソール の [概要] ページでインスタンスの [ID] を表示できます。

重要
  • インスタンスに ID がある場合は、このパラメータに ID を指定する必要があります。そうでない場合、呼び出しは失敗します。

  • 概要 ページまたは ID がインスタンスに対して生成されない場合、このパラメーターを構成する必要はありません。

詳細については、「概要」をご参照ください。

FileSuffix

String

いいえ

apk

アップデートパッケージファイルのファイル名拡張子。有効な値:bin、dav、apk、tar、gz、tar.gz、zip、gzip。

デフォルト値:bin。

上記の操作固有のリクエストパラメータに加えて、この操作を呼び出すときは、共通のリクエストパラメータを指定する必要があります。詳細については、「共通リクエストパラメータ」をご参照ください。

レスポンスパラメータ

パラメータ

タイプ

説明

Code

String

iot.system.SystemException

呼び出しが失敗した場合に返されるエラーコード。詳細については、「エラーコード」をご参照ください。

Data

Struct

呼び出しが成功した場合に返される情報。詳細については、以下のパラメータをご参照ください。

FirmwareUrl

String

https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin

OSS に保存されているアップデートパッケージファイルの URL。

アップデートパッケージファイルがアップロードされた後、このパラメータを使用して CreateOTAFirmware 操作を呼び出し、アップデートパッケージを作成します。

Host

String

https://iotx-ota.oss-cn-shanghai.aliyuncs.com

OSS のエンドポイント。

Key

String

ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin

OSS 内のファイルの完全なパス。ファイルは、OSS PostObject 操作を呼び出すことによってアップロードされます。

OSSAccessKeyId

String

cS8uRRy54Rsz****

バケットオーナーの AccessKey ID。

この OSS バケットには、アップデートパッケージファイルが保存されます。

ObjectStorage

String

OSS

オブジェクトストレージのタイプ。デフォルト値:OSS。

Policy

String

eyJleHBpcmF****

OSS がリクエストのフォームフィールドを検証するために使用するパラメータ。

Signature

String

v6lViO4FBvfquajQjg20K5hK****

AccessKeySecretポリシー に基づいて計算される署名です。OSS 操作を呼び出すと、OSS は署名情報を使用して POST リクエストを検証します。

UtcCreate

String

2019-11-04T06:21:54.607Z

アップロードされたアップデートパッケージファイルの URL が生成された時刻。時刻は UTC で表示されます。

ErrorMessage

String

システム例外が発生しました。

呼び出しが失敗した場合に返されるエラーメッセージ。

RequestId

String

74C2BB8D-1D6F-41F5-AE68-6B2310883F63

リクエストの ID。

Success

Boolean

true

呼び出しが成功したかどうかを示します。有効な値:

  • true: 呼び出しは成功しました。

  • false: 呼び出しが失敗しました。

レスポンスパラメータの使用方法

OSS PostObject 操作を呼び出してアップデートパッケージファイルを OSS にアップロードするときは、GenerateOTAUploadURL 操作によって返される値を使用してリクエストパラメータを指定します。

Java で記述された次のサンプルコードは、アップデートパッケージファイルを OSS にアップロードする方法を示しています。サンプルコードの詳細については、「フォームのアップロード」をご参照ください。

  • pom.xml ファイルに次の依存関係を追加します。

    
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.3</version>
    </dependency>
    
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpmime</artifactId>
      <version>4.5.10</version>
    </dependency>
                        
  • サンプルコード:

    
    public static boolean postObject(String key,  //日本語コメント:key パラメータ
                                      String host, //日本語コメント:host パラメータ
                                      String policy, //日本語コメント:policy パラメータ
                                      String ossAccessKeyId, //日本語コメント:ossAccessKeyId パラメータ
                                      String signature, //日本語コメント:signature パラメータ
                                      String data) throws IOException { //日本語コメント:data パラメータ
      CloseableHttpClient httpClient = HttpClients.createDefault();
      HttpPost uploadFile = new HttpPost(host);
    
      MultipartEntityBuilder builder = MultipartEntityBuilder.create();
      builder.addTextBody("key", key, ContentType.TEXT_PLAIN);
      builder.addTextBody("policy", policy, ContentType.TEXT_PLAIN);
      builder.addTextBody("OSSAccessKeyId", ossAccessKeyId, ContentType.TEXT_PLAIN);
      builder.addTextBody("signature", signature, ContentType.TEXT_PLAIN);
      builder.addTextBody("success_action_status", "200", ContentType.TEXT_PLAIN);
      builder.addBinaryBody("file", data.getBytes());
    
      HttpEntity multipart = builder.build();
      uploadFile.setEntity(multipart);
      CloseableHttpResponse response = httpClient.execute(uploadFile);
    
      if (response.getStatusLine().getStatusCode() == 200) {
        return true;
      }
    
      return false;
    }
                        

リクエストの例

https://iot.cn-shanghai.aliyuncs.com/?Action=GenerateOTAUploadURL
&<共通リクエストパラメータ>

成功レスポンスの例

XML 形式

<GenerateOTAUploadURLResponse>
    <Data>
        <Key>ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin</Key>
        <Host>https://iotx-ota.oss-cn-shanghai.aliyuncs.com</Host>
        <Policy>eyJleHBpcmF****</Policy>
        <OSSAccessKeyId>cS8uRRy54Rsz****</OSSAccessKeyId>
        <ObjectStorage>OSS</ObjectStorage>
        <UtcCreate>2019-11-04T06:21:54.607Z</UtcCreate>
        <Signature>PKmRTy40QxqIUUWy325SCT/****</Signature>
        <FirmwareUrl>https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin</FirmwareUrl>
    </Data>
    <RequestId>B6E77674-09C4-4647-BF85-59CB72A72E4B</RequestId>
    <Success>true</Success>
</GenerateOTAUploadURLResponse>

JSON 形式

{
    "Data": {
        "Key": "ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin",
        "Host": "https://iotx-ota.oss-cn-shanghai.aliyuncs.com",
        "Policy": "eyJleHBpcmF****",
        "OSSAccessKeyId": "cS8uRRy54Rsz****",
        "ObjectStorage": "OSS",
        "UtcCreate": "2019-11-04T06:21:54.607Z",
        "Signature": "PKmRTy40QxqIUUWy325SCT/****",
        "FirmwareUrl": "https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin"
    },
    "RequestId": "B6E77674-09C4-4647-BF85-59CB72A72E4B",
    "Success": true
}

エラーコード

エラーコードの一覧については、API エラーセンターをご参照ください。