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