Get File


Get the information of a file. This API is only available if 2.3 Cumulative Update 3 has been applied to your environment. For the full change list of 2.3 Cumulative Update 3, see Cumulative Update 3.

Operation Permissions

Required Authorization Required Operation Permission
Asset Read

Request Format

GET https://{integration-address}/connect-service/v2.1/files?action=getFileInfo

Note

{integration-address}: The gateway address of message integration service. Log in to the EnOS Management Console and find it in Help > Environment Information.

Request Parameters (URI)

Note

Use one of the following methods to specify the asset:

  • Include assetId in the request
  • Include productKey + deviceKey in the request
Name Location (Path/Query) Mandatory/Optional Data Type Description
orgId Query Mandatory String The organization ID which the asset belongs to. How to get orgId>>
fileUri Query Mandatory String The URI of the file. Format: enos-connect://xxxx
category Query Mandatory String The type of the file to be downloaded. The value feature stands for model definition and ota for OTA-related resources.
assetId Query Optional (See Note above) String The asset ID. How to get assetID>>
productKey Query Optional (See Note above) String The product key. To be used with deviceKey.
deviceKey Query Optional (See Note above) String The device key. To be used with productKey.

Request Parameters (Header)

Name Mandatory/Optional Data Type Description
apim-accesstoken Mandatory String The access token obtained via token authentication. For more information, see Get Access Token

Response Parameters

Name Data Type Description
data FileMetaDto Struct The file metadata information. For more information, see FileMetaDto Struct

Samples

Request Sample

https://{integration-address}/connect-service/v2.1/files?action=getFileInfo&orgId=yourOrgId&fileUri=yourFileUri&category=feature&assetId=yourAssetId
method: GET
requestHeader: {
  "apim-accesstoken":"yourAccessToken"
}

Response Sample

{
    "code": 0,
    "msg": "OK",
    "requestId": "6a02a5a5-49f0-4df1-b364-496ad2079033",
    "data": {
        "orgId": "yourOrgId",
        "category": "feature",
        "fileUri": "yourFileUri",
        "originalFilename": "file.txt",
        "fileSize": 123,
        "md5": "md5value",
        "signMethod": "md5",
        "sign": "fileSig",
        "createTime": 1648694084000
    }
}

Java SDK Sample

import com.envisioniot.enos.iot_http_integration.FileCategory;
import com.envisioniot.enos.iot_http_integration.HttpConnection;
import com.envisioniot.enos.iot_http_integration.dto.FileMetaDto;
import com.envisioniot.enos.iot_http_integration.message.*;
import com.envisioniot.enos.iot_mqtt_sdk.core.exception.EnvisionException;
import com.envisioniot.enos.sdk.data.DeviceInfo;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class GetFileInfoSample {
    // EnOS Token Server URL and HTTP Broker URL, which can be obtained from Environment Information page in EnOS Console
    static final String TOKEN_SERVER_URL = "https://ag-beta1.eniot.io";
    static final String BROKER_URL = "https://iot-http-integration-beta1.eniot.io";

    // EnOS Application AccessKey and SecretKey, which can be obtain in Application Registration page in EnOS Console
    static final String APP_KEY = "yourAppKey";
    static final String APP_SECRET = "yourAppSecret";

    // Device credentials, which can be obtained from Device Details page in EnOS Console
    static final String ORG_ID = "yourOrgId";
    static final String ASSET_ID = "yourAssetId";
    static final String PRODUCT_KEY = "yourProductKey";
    static final String DEVICE_KEY = "yourDeviceKey";


    public static void main(String[] args) throws EnvisionException {
        // Construct a http connection
        HttpConnection connection = new HttpConnection.Builder(
                BROKER_URL, TOKEN_SERVER_URL, APP_KEY, APP_SECRET, ORG_ID)
                .build();

        DeviceInfo deviceInfo = new DeviceInfo().setAssetId(ASSET_ID);
//        DeviceInfo deviceInfo = new DeviceInfo().setKey(PRODUCT_KEY,DEVICE_KEY);
        // fileUri is an enos scheme file uri
        String fileUri = "enos-connect://file.txt";

        try {
            FileInfoResponse rsp = connection.getFileInfo(deviceInfo, fileUri, FileCategory.FEATURE);
            FileMetaDto data = rsp.getData();
        } catch (EnvisionException e) {
            e.printStackTrace();
        }
    }
}