Génère l’URL et les autres informations nécessaires au téléchargement d’un fichier de package de mise à jour vers Object Storage Service (OSS).
Notes d'utilisation
Utilisez cette opération conjointement avec d’autres pour créer un package de mise à jour. Procédure :
1. Appelez cette opération d’API pour générer les détails du fichier de package de mise à jour que vous souhaitez télécharger sur OSS.
La section suivante décrit les paramètres de réponse de cette opération d’API :
Les paramètres de requête suivants de l’opération OSS PostObject utilisée pour télécharger le fichier de package de mise à jour : Host,Key, OSSAccessKeyId, Signature et Policy.
Le paramètre de requête suivant de l’opération CreateOTAFirmware utilisée pour créer le package de mise à jour : FirmwareUrl.
2. Utilisez un SDK OSS pour appeler l’opération PostObject afin de télécharger le fichier de package de mise à jour. Pour plus d’informations sur l’exemple de code, consultez la section « Utilisation des paramètres de réponse ».
Les informations de paramètres renvoyées par cette opération sont valides pendant 1 minute. Vous devez télécharger le fichier de package de mise à jour dans ce délai. La taille maximale du fichier de package de mise à jour téléchargé est de 1 000 Mo.
3. Une fois le fichier de package de mise à jour téléchargé, appelez l’opération CreateOTAFirmware pour créer un package de mise à jour dans un délai de 60 minutes.
Si des fichiers de package de mise à jour sont téléchargés mais que vous n’appelez pas l’opération CreateOTAFirmware pour créer les packages correspondants, le système supprime automatiquement les fichiers téléchargés périodiquement.
Limites QPS
Chaque compte Alibaba Cloud peut effectuer jusqu’à 10 requêtes par seconde (QPS).
Les utilisateurs RAM d’un compte Alibaba Cloud partagent le quota de ce compte.
Débogage
Paramètres de requête
Paramètre | Type | Obligatoire | Exemple | Description |
Action | String | Oui | GenerateOTAUploadURL | Opération que vous souhaitez exécuter. Définissez la valeur sur GenerateOTAUploadURL. |
IotInstanceId | String | Non | iot-cn-0pp1n8t**** | ID de l’instance. Vous pouvez afficher l’ID de l’instance sur la page Overview de la console IoT Platform. Important
Pour plus d’informations, consultez Vue d’ensemble. |
FileSuffix | String | Non | apk | Extension du nom de fichier du package de mise à jour. Valeurs possibles : bin, dav, apk, tar, gz, tar.gz, zip et gzip. Valeur par défaut : bin. |
En plus des paramètres de requête spécifiques à l’opération mentionnés ci-dessus, vous devez spécifier les paramètres de requête communs lorsque vous appelez cette opération. Pour plus d’informations, consultez les Paramètres de requête communs.
Paramètres de réponse
Paramètre | Type | Exemple | Description |
Code | String | iot.system.SystemException | Code d’erreur renvoyé en cas d’échec de l’appel. Pour plus d’informations, consultez les Codes d’erreur. |
Data | Struct | Informations renvoyées en cas de succès de l’appel. Pour plus d’informations, consultez les paramètres suivants. | |
FirmwareUrl | String | https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472**/ck2nfzljo00023g7kysg0**.bin | URL du fichier de package de mise à jour stocké dans OSS. Une fois le fichier de package de mise à jour téléchargé, utilisez ce paramètre pour appeler l’opération CreateOTAFirmware afin de créer un package de mise à jour. |
Host | String | https://iotx-ota.oss-cn-shanghai.aliyuncs.com | Endpoint OSS. |
Key | String | ota/65dfcda0473be29836dfde585472**/ck2nfzljo00023g7kysg0**.bin | Chemin complet du fichier dans OSS. Le fichier est téléchargé via l’opération PostObject d’OSS. |
OSSAccessKeyId | String | cS8uRRy54Rsz**** | AccessKey ID du propriétaire du bucket. Ce bucket OSS stocke le fichier de package de mise à jour. |
ObjectStorage | String | OSS | Type de stockage objet. Valeur par défaut : OSS. |
Policy | String | eyJleHBpcmF**** | Paramètre utilisé par OSS pour vérifier les champs de formulaire de la requête. |
Signature | String | v6lViO4FBvfquajQjg20K5hK**** | Signature calculée à partir de AccessKeySecret et de Policy. Lorsque vous appelez une opération OSS, OSS utilise les informations de signature pour vérifier la requête POST. |
UtcCreate | String | 2019-11-04T06:21:54.607Z | Date et heure de génération de l’URL du fichier de package de mise à jour téléchargé. L’heure est affichée au format UTC. |
ErrorMessage | String | A system exception occurred. | Message d’erreur renvoyé en cas d’échec de l’appel. |
RequestId | String | 74C2BB8D-1D6F-41F5-AE68-6B2310883F63 | ID de la requête. |
Success | Boolean | true | Indique si l’appel a réussi. Valeurs possibles :
|
Utilisations des paramètres de réponse
Lorsque vous appelez l’opération OSS PostObject pour télécharger le fichier de package de mise à jour vers OSS, spécifiez les paramètres de requête en utilisant les valeurs renvoyées par l’opération GenerateOTAUploadURL.
L’exemple de code Java suivant montre comment télécharger le fichier de package de mise à jour vers OSS. Pour plus d’informations sur l’exemple de code, consultez la section Téléchargement de formulaires.
-
Ajoutez les dépendances suivantes au fichier 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> -
Exemple de code :
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; }
Exemples
Exemple de requête
https://iot.cn-shanghai.aliyuncs.com/?Action=GenerateOTAUploadURL
&<Common request parameters>
Exemple de réponse en cas de succès
Format 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>
Format 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
}
Codes d’erreur
Pour obtenir la liste des codes d’erreur, visitez le Centre d’erreurs API.