using BPA.Message.IOT; using DataVAPI.Tool.IOT; using System; using System.Collections.Generic; using Tea; using static AlibabaCloud.SDK.Iot20180120.Models.QueryDeviceFileResponseBody; namespace BPASmartClient.IoT.Model { public class Sample { /** * 使用AK&SK初始化账号Client * @param accessKeyId * @param accessKeySecret * @return Client * @throws Exception */ public static AlibabaCloud.SDK.Iot20180120.Client CreateClient(string accessKeyId, string accessKeySecret) { AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config { // 您的AccessKey ID AccessKeyId = accessKeyId, // 您的AccessKey Secret AccessKeySecret = accessKeySecret, }; // 访问的域名 config.Endpoint = "iot.cn-shanghai.aliyuncs.com"; return new AlibabaCloud.SDK.Iot20180120.Client(config); } public static List FileQueryALL(string DeviceName) { List retdata = new List(); AlibabaCloud.SDK.Iot20180120.Client client = CreateClient("LTAI5tDbUDuCvqU5hP8ZpHHV", "SvNIRQuz3BQFEaC3PFSJdgpeOKWFRi"); AlibabaCloud.SDK.Iot20180120.Models.QueryDeviceFileListRequest queryDeviceFileListRequest = new AlibabaCloud.SDK.Iot20180120.Models.QueryDeviceFileListRequest { IotInstanceId = "iot-06z00g9pf3kwtxp", DeviceName = DataVClient.GetInstance.DeviceName, ProductKey = DataVClient.GetInstance.ProductKey, }; AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions(); AlibabaCloud.SDK.Iot20180120.Models.QueryDeviceFileListResponse resp = client.QueryDeviceFileListWithOptions(queryDeviceFileListRequest, runtime); AlibabaCloudRes cloudRes = Tools.JsonToObjectTools(AlibabaCloud.TeaUtil.Common.ToJSONString(resp.ToMap())); cloudRes?.body?.Data?.FileSummary?.ForEach(fileSummary => { QueryDeviceFileResponseBodyData _data = FileQuery(DeviceName, fileSummary.FileId); if (_data != null) { _data.UtcCreatedOn = DateTime.Parse(_data.UtcCreatedOn).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); _data.DownloadUrl = _data.DownloadUrl.Replace("http://", "https://"); retdata.Add(_data); } }); return retdata; } /// /// 替换字符串起始位置(开头)中指定的字符串 /// /// 源串 /// 查找的串 /// 替换的目标串 /// public static string CutStarStr(string s, string searchStr, string replaceStr) { var result = s; try { if (string.IsNullOrEmpty(result)) { return result; } if (s.Length < searchStr.Length) { return result; } if (s.IndexOf(searchStr, 0, searchStr.Length, StringComparison.Ordinal) > -1) { result = s.Substring(searchStr.Length); } return result; } catch (Exception e) { return result; } } public static QueryDeviceFileResponseBodyData FileQuery(string DeviceName, string FileId) { AlibabaCloud.SDK.Iot20180120.Client client = CreateClient("LTAI5tDbUDuCvqU5hP8ZpHHV", "SvNIRQuz3BQFEaC3PFSJdgpeOKWFRi"); AlibabaCloud.SDK.Iot20180120.Models.QueryDeviceFileRequest queryDeviceFileRequest = new AlibabaCloud.SDK.Iot20180120.Models.QueryDeviceFileRequest { IotInstanceId = "iot-06z00g9pf3kwtxp", DeviceName = DataVClient.GetInstance.DeviceName, ProductKey = DataVClient.GetInstance.ProductKey, FileId = FileId, }; AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions(); // 复制代码运行请自行打印 API 的返回值 QueryDeviceFileResponseBodyData queryDeviceFile = client.QueryDeviceFileWithOptions(queryDeviceFileRequest, runtime).Body.Data; return queryDeviceFile; } public static bool? DeleteFile(string DeviceName, string FileId) { AlibabaCloud.SDK.Iot20180120.Client client = CreateClient("LTAI5tDbUDuCvqU5hP8ZpHHV", "SvNIRQuz3BQFEaC3PFSJdgpeOKWFRi"); AlibabaCloud.SDK.Iot20180120.Models.DeleteDeviceFileRequest deleteDeviceFileRequest = new AlibabaCloud.SDK.Iot20180120.Models.DeleteDeviceFileRequest { IotInstanceId = "iot-06z00g9pf3kwtxp", DeviceName = DataVClient.GetInstance.DeviceName, ProductKey = DataVClient.GetInstance.ProductKey, FileId = FileId, }; AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions(); // 复制代码运行请自行打印 API 的返回值 return client.DeleteDeviceFileWithOptions(deleteDeviceFileRequest, runtime).Body.Success; } } public class AlibabaCloudRes { public object headers { get; set; } public StrRes body { get; set; } } public class StrRes { public string code { get; set; } public string CurrentPage { get; set; } public ResData Data { get; set; } public string ErrorMessage { get; set; } public int PageCount { get; set; } public int PageSize { get; set; } public string RequestId { get; set; } public bool Success { get; set; } public int Total { get; set; } } public class ResData { public List FileSummary { get; set; } } public class summary { public string UtcCreatedOn { get; set; } public string Size { get; set; } public string FileId { get; set; } public string Name { get; set; } } }