Upload the event data of a device or logic asset, including file-type data.
This API is available in EnOS 2.1.0 and above.
Operation Permissions
Before invoking this API, ensure that the service account has been authorized the policy that includes the following service(s) and action permission(s). For how to authorize the service account, see Managing Service Accounts.
Required Service |
Required Operation Permission |
Asset |
Write |
Request Parameters (Body)
The format of the request body is multipart/form-data, consisting of multiple form-data sections. For a request body:
- There must only be one request message. The request message takes up the space of one form-data and its format is “request form-data”. The header and body of the “request form-data” are shown in the tables below.
- There can be one or multiple file form-data. If a request body contains file data, one file takes up the space of one file form-data. Its format is “file form-data”. The header of a “file form-data” is shown in the table below. If the body does not contain any file data, the body does not have to contain any file form-data.
Header of the request form-data
Name |
Mandatory/Optional |
Data Type |
Description |
Content-Disposition |
Mandatory |
Content-Disposition: form-data; name=”enos-message” |
name is a constant indicating the name of the request message. |
Body of the request form-data
Name |
Mandatory/Optional |
Data Type |
Description |
method |
Mandatory |
String |
The request method. |
id |
Mandatory |
Integer |
The request message ID. |
version |
Mandatory |
String |
The version number. |
params |
Mandatory |
Array of Event Structs |
An array of Event Structs. See the table below for the structure of an Event Struct. |
files |
Mandatory |
Map |
The mapping between files and asset attributes. Its value is a key-value pair File Name : File Mapping Struct . See the table below for the structure of a File Mapping Struct. |
Note
Use one of the following methods to specify the device:
- Include the
assetId
in the Request
- Include both
productKey
+ deviceKey
in the Request
Event Struct
Name |
Mandatory/Optional |
Data Type |
Description |
assetId |
Optional (See Note above) |
String |
The asset ID. How to get assetID>> |
productKey |
Optional (See Note above) |
String |
The product key. To be used with deviceKey . |
deviceKey |
Optional (See Note above) |
String |
The device key. To be used with productKey . |
time |
Mandatory |
Long |
The timestamp of the event data. |
events |
Mandatory |
Map |
The format is a key-value pair Event ID : Value . If the Event ID is a file-type, its value would be local://filename . local:// is the fixed header. filename is the file name. |
File Mapping Struct
Name |
Mandatory/Optional |
Data Type |
Description |
featureId |
Mandatory |
String |
The event ID. |
assetId |
Optional |
String |
The asset ID. |
productKey |
Optional |
String |
The product key of the asset. |
deviceKey |
Optional |
String |
The device key of the asset. |
md5 |
Optional |
String |
The MD5 of the file. |
originalFilename |
Optional |
String |
The name of the file, which will be returned when downloading. If not specified, the filename will be randomly generated. |
fileExt |
Optional |
String |
The filename extension, such as .zip and .gpg. |
fileLength |
Optional |
Long |
The size of the file in bytes. The size used will be the value of Content-Length in the header of the file form-data, only when unable to get that value, this will be used instead. |
Header of the file form-data
Name |
Mandatory/Optional |
Data Type |
Description |
Content-Disposition |
Mandatory |
Content-Disposition: form-data; name=”enos-file”; filename=”yourFileName” |
Fixed parameter in the file form-data. Fields are separated by a semicolon (;). name is enos-file . filename indicates file name. |
Content-Length |
Mandatory |
Long |
The size of the file in bytes. |