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 一起使用。 |
请求参数(Header)¶
名称 | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|
apim-accesstoken | 必需 | String | 通过 token 认证获取的 access token。获取方法,参见 获取 Access Token。 |
响应参数¶
名称 | 数据类型 | 描述 |
---|---|---|
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();
}
}
}