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 |
需要下载的文件类别。模型功能相关的文件,如属性、测点、事件,值为 |
assetId |
Query |
可选(见上述注解) |
String |
资产 ID。如何获取 assetId 信息>> |
productKey |
Query |
可选(见上述注解) |
String |
设备的 product key,需与 |
deviceKey |
Query |
可选(见上述注解) |
String |
设备的 device key,需与 |
请求参数(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();
}
}
}