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

IoT Platform:GenerateDeviceNameListURL

最終更新日:Apr 17, 2025

Object Storage Service (OSS) にアップロードするデバイスリストファイルの URL と詳細を生成します。静的更新バッチを作成する際に、デバイスリストファイルで更新するデバイスを指定できます。

要件

  • デバイスリストファイルには、デバイスの名前が含まれています。複数のデバイス名は改行で区切ります。各行には 1 つのデバイス名のみが含まれます。デバイスリストファイルは CSV 形式である必要があります。デバイスリストファイルの最大サイズは 5 MB です。
  • 各デバイスリストファイルには、更新パッケージに関連付けられている製品のデバイス名を最大 10,000 個含めることができます。デバイスリストファイル内のデバイス名が制限を超えると、ファイルを使用して静的更新バッチを作成するときにエラーが発生します。

説明

この操作は、他の操作と組み合わせて使用​​して、デバイスリストファイルをアップロードできます。手順:

1. この操作を呼び出して、OSS にアップロードするデバイスリストファイルの情報を生成します。

この API 操作のレスポンスパラメータには以下が含まれます。

デバイスリストファイルをアップロードするために使用される OSS PostObject 操作の次のリクエストパラメータ: KeyAccessKeyIdSignature、および Policy

2. レスポンスが返されてから 1 分以内に、OSS SDK を使用して PostObject 操作を呼び出し、デバイスリストファイルをアップロードします。サンプルコードの詳細については、このトピックの「レスポンスパラメータの使用法」セクションをご参照ください。

説明 この操作によって返されるパラメータ情報は 1 分間有効です。1 分以内にデバイスリストファイルをアップロードする必要があります。

3. デバイスリストファイルをアップロードした後、IoT Platform の CreateOTAStaticUpgradeJob 操作を呼び出して、60 分以内に静的更新バッチを作成します。

デバイスリストファイルをアップロードしたが、CreateOTAStaticUpgradeJob 操作を呼び出して静的更新バッチを作成しなかった場合、システムはアップロードされたファイルを自動的に削除します。システムはファイルを定期的に削除します。

QPS 制限

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

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

デバッグ

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

リクエストパラメータ

パラメータタイプ必須説明
ActionStringはいGenerateDeviceNameListURL

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

IotInstanceIdStringいいえiot-cn-0pp1n8t****

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

重要
  • インスタンスに ID がある場合は、このパラメータに ID を指定する必要があります。指定しないと、呼び出しは失敗します。
  • インスタンスに 概要 ページまたは ID がない場合は、このパラメータを設定する必要はありません。

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

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

レスポンスパラメータ

パラメータタイプ説明
CodeStringiot.system.SystemException

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

DataStruct

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

AccessKeyIdStringcS8uRRy54Rsz****

バケット所有者の AccessKey ID。

OSS バケットはファイルを保存します。

FileUrlStringhttps://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv

OSS に保存されているファイルの URL。

デバイスリストファイルがアップロードされると、このパラメータを使用して CreateOTAStaticUpgradeJob 操作を呼び出し、静的更新バッチを作成します。

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

OSS のエンドポイント。

KeyStringota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv

OSS 内のファイルの完全なパス。OSS PostObject 操作を呼び出して、ファイルを OSS にアップロードできます。

ObjectStorageStringOSS

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

PolicyStringeyJleHBpcmF****

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

SignatureStringv6lViO4FBvfquajQjg20K5hK****

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

UtcCreateString2019-11-04T06:21:54.607Z

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

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

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

RequestIdString74C2BB8D-1D6F-41F5-AE68-6B2310883F63

リクエストの ID。

SuccessBooleantrue

呼び出しが成功したかどうかを示します。

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

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

OSS PostObject 操作を呼び出してファイルを OSS にアップロードする場合は、PostObject 操作のリクエストパラメータに、この操作によって返されるパラメータの値を指定します。

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,
                                  String host,
                                  String policy,
                                  String ossAccessKeyId,
                                  String signature,
                                  String data) throws IOException {
  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=GenerateDeviceNameListURL
&<共通リクエストパラメータ>

成功レスポンスの例

XML 形式

<GenerateDeviceNameListURLResponse>
      <Data>
            <Policy>eyJleHBpcmF****</Policy>
            <FileUrl>https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv</FileUrl>
            <UtcCreate>2019-11-04T06:21:54.607Z</UtcCreate>
            <AccessKeyId>cS8uRRy54Rsz****</AccessKeyId>
            <Signature>v6lViO4FBvfquajQjg20K5hK****</Signature>
            <ObjectStorage>OSS</ObjectStorage>
            <Host>https://iotx-ota.oss-cn-shanghai.aliyuncs.com</Host>
            <Key>ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv</Key>
      </Data>
      <RequestId>74C2BB8D-1D6F-41F5-AE68-6B2310883F63</RequestId>
      <Success>true</Success>
</GenerateDeviceNameListURLResponse>

JSON 形式

{
    "Data": {
        "Policy": "eyJleHBpcmF****",
        "FileUrl": "https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv",
        "UtcCreate": "2019-11-04T06:21:54.607Z",
        "AccessKeyId": "cS8uRRy54Rsz****",
        "Signature": "v6lViO4FBvfquajQjg20K5hK****",
        "ObjectStorage": "OSS",
        "Host": "https://iotx-ota.oss-cn-shanghai.aliyuncs.com",
        "Key": "ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv"
    },
    "RequestId": "74C2BB8D-1D6F-41F5-AE68-6B2310883F63",
    "Success": true
}

エラーコード

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