Todos los productos
Search
Centro de documentos

IoT Platform:GenerateOTAUploadURL

Última actualización: Sep 03, 2026

Genera la URL y otra información obligatoria para cargar un archivo de paquete de actualización en Object Storage Service (OSS).

Notas de uso

Esta operación puede usarse junto con otras para crear un paquete de actualización. Procedimiento:

  1. Llame a esta operación de API para generar los detalles del archivo de paquete de actualización que desea cargar en OSS.

A continuación se describen los parámetros de respuesta de esta operación de API:

  • Los siguientes parámetros de solicitud de la operación PostObject de OSS, que se usa para cargar el archivo del paquete de actualización: Host,Key, OSSAccessKeyId, Signature y Policy.

  • El siguiente parámetro de solicitud de la operación CreateOTAFirmware, que se usa para crear el paquete de actualización: FirmwareUrl.

  1. Use un SDK de OSS para llamar a la operación PostObject y cargar el archivo del paquete de actualización. Para obtener más información sobre el código de ejemplo, consulte la sección "Uso de los parámetros de respuesta".

    Importante

    La información de los parámetros que devuelve esta operación tiene una validez de 1 minuto. Debe cargar el archivo del paquete de actualización dentro de ese minuto. El tamaño máximo del archivo de paquete de actualización cargado es de 1,000 MB.

  2. Una vez cargado el archivo del paquete de actualización, llame a la operación CreateOTAFirmware para crear un paquete de actualización dentro de un plazo de 60 minutos.

Si se cargan archivos de paquetes de actualización pero no se llama a la operación CreateOTAFirmware para crear los paquetes correspondientes, el sistema eliminará automáticamente dichos archivos de forma periódica.

Límites de QPS

Cada cuenta de Alibaba Cloud puede ejecutar hasta 10 consultas por segundo (QPS).

Nota

Los usuarios de RAM de una cuenta de Alibaba Cloud comparten la cuota de dicha cuenta.

Depuración

OpenAPI Explorer calcula automáticamente el valor de la firma. Para su comodidad, le recomendamos llamar a esta operación desde OpenAPI Explorer. Esta herramienta genera dinámicamente el código de ejemplo de la operación para diferentes SDK.

Parámetros de solicitud

Parámetro

Tipo

Obligatorio

Ejemplo

Descripción

Action

String

Sí

GenerateOTAUploadURL

La operación que se va a realizar. Establezca el valor en GenerateOTAUploadURL.

IotInstanceId

String

No

iot-cn-0pp1n8t****

El ID de la instancia. Puede consultar el ID de la instancia en la página Overview de la consola de IoT Platform.

Importante
  • Si su instancia tiene un ID, debe especificarlo en este parámetro. De lo contrario, la llamada fallará.

  • Si no se ha generado ninguna página Overview o ID para su instancia, no es necesario configurar este parámetro.

Para obtener más información, consulte Descripción general.

FileSuffix

String

No

apk

La extensión del nombre del archivo del paquete de actualización. Valores válidos: bin, dav, apk, tar, gz, tar.gz, zip y gzip.

Valor predeterminado: bin.

Además de los parámetros de solicitud específicos de la operación mencionados anteriormente, debe especificar los parámetros de solicitud comunes al llamar a esta operación. Para obtener más información, consulte Parámetros de solicitud comunes.

Parámetros de respuesta

Parámetro

Tipo

Ejemplo

Descripción

Code

String

iot.system.SystemException

El código de error que se devuelve si la llamada falla. Para obtener más información, consulte Códigos de error.

Data

Struct

La información que se devuelve si la llamada es exitosa. Para obtener más información, consulte los siguientes parámetros.

FirmwareUrl

String

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

La URL del archivo del paquete de actualización almacenado en OSS.

Una vez cargado el archivo del paquete de actualización, use este parámetro para llamar a la operación CreateOTAFirmware y crear un paquete de actualización.

Host

String

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

El endpoint de OSS.

Key

String

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

La ruta completa del archivo en OSS. El archivo se carga mediante la operación PostObject de OSS.

OSSAccessKeyId

String

cS8uRRy54Rsz****

El AccessKey ID del propietario del bucket.

Este bucket de OSS almacena el archivo del paquete de actualización.

ObjectStorage

String

OSS

El tipo de object storage. Valor predeterminado: OSS.

Policy

String

eyJleHBpcmF****

El parámetro que usa OSS para verificar los campos del formulario de la solicitud.

Signature

String

v6lViO4FBvfquajQjg20K5hK****

La firma calculada con base en AccessKeySecret y Policy. Al llamar a una operación de OSS, el servicio usa esta información de firma para verificar la solicitud POST.

UtcCreate

String

2019-11-04T06:21:54.607Z

La hora en que se generó la URL del archivo de paquete de actualización cargado. La hora se muestra en formato UTC.

ErrorMessage

String

A system exception occurred.

El mensaje de error que se devuelve si la llamada falla.

RequestId

String

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

El ID de la solicitud.

Success

Boolean

true

Indica si la llamada fue exitosa. Valores válidos:

  • true: La llamada fue exitosa.

  • false: La llamada falló.

Uso de los parámetros de respuesta

Cuando llame a la operación PostObject de OSS para cargar el archivo del paquete de actualización en OSS, especifique los parámetros de solicitud con los valores devueltos por la operación GenerateOTAUploadURL.

El siguiente código de ejemplo escrito en Java muestra cómo cargar el archivo del paquete de actualización en OSS. Para obtener más información sobre el código de ejemplo, consulte Carga de formularios.

  • Agregue las siguientes dependencias al archivo 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>
                        
  • Código de ejemplo:

    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;
    }
                        

Ejemplos

Solicitudes de ejemplo

https://iot.cn-shanghai.aliyuncs.com/?Action=GenerateOTAUploadURL
&<Common request parameters>

Respuestas exitosas de ejemplo

Formato 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>

Formato 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
}

Códigos de error

Para obtener una lista de códigos de error, visite el Centro de errores de API.