Get File


获取文件的信息。使用前确保环境已更新 EnOS 2.3 CU 3

操作权限

需授权的资源

所需操作权限

资产

Read

请求格式

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

备注

{integration-address}:消息集成服务网关地址。该信息可登陆 EnOS 管理控制台,在 帮助 > 环境信息 > HTTP 消息集成通道 中获取。

请求参数(URI)

备注

必须在请求参数中使用以下任意一个参数或参数组合以指定资产:

  • assetId 以指定一个设备或一个逻辑资产

  • productKey + deviceKey 以指定一个设备

名称

位置(Path/Query)

必需/可选

数据类型

描述

orgId

Query

必需

String

资产所属的组织 ID。如何获取 orgId 信息>>

fileUri

Query

必需

String

文件下载 URI,格式:enos-connect://xxxx。

category

Query

必需

String

需要下载的文件类别。模型功能相关的文件,如属性、测点、事件,值为 feature;OTA资源包,值为 ota

assetId

Query

可选(见上述注解)

String

资产 ID。如何获取 assetId 信息>>

productKey

Query

可选(见上述注解)

String

设备的 product key,需与 deviceKey 一起使用。

deviceKey

Query

可选(见上述注解)

String

设备的 device key,需与 productKey 一起使用。

响应参数

名称

数据类型

描述

data

FileMetaDto 结构体

文件元数据信息。其结构参见 FileMetaDto 结构体

FileMetaDto 结构体

名称

数据类型

描述

orgId

String

资产所属的组织 ID。

category

String

需要下载的文件类别。

fileUri

String

文件下载 URI。

originalFilename

String

文件名称。

fileSize

Integer

文件大小。

md5

String

文件 MD5。

signMethod

String

文件签名算法。

sign

String

文件签名。

createTime

Long

文件创建时间

示例

请求示例

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

返回示例

{
    "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 调用示例

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