zhangbin 3 weeks ago
commit 0cca478475

@ -409,7 +409,7 @@ namespace OpenAuth.App.ServiceApp
#endregion
public async Task<Response<PageInfo<List<LasaMediaFile>>>> GetMediaFile(string taskId, string airId,string device,
string picname, DateTime? startTime, DateTime? endTime, int page, int limit, string parentKey,int? objectKeyExist)
int? type, string picname, DateTime? startTime, DateTime? endTime, int page, int limit, string parentKey,int? objectKeyExist)
{
RefAsync<int> totalCount = 0;
using (var db = UnitWork.CreateContext())
@ -426,6 +426,7 @@ namespace OpenAuth.App.ServiceApp
.WhereIF(!"0001/1/1 0:00:00".Equal(endTime.ToString()), (x, b) => x.CreateTime <= endTime)
.WhereIF(!string.IsNullOrEmpty(parentKey), (x, b) => x.ParentKey == parentKey)
.WhereIF(!string.IsNullOrEmpty(taskId), (x, b) => x.TaskId == taskId)
.WhereIF(type != null, (x, b) => x.Type == type)
.OrderBy((x, b) => x.CreateTime, OrderByType.Desc)
.Select((x,b) => new LasaMediaFile
{
@ -457,7 +458,8 @@ namespace OpenAuth.App.ServiceApp
AirLineName = b.TaskAirLineName,
GimbalYawDegree = x.GimbalYawDegree,
RelativeAltitude = x.RelativeAltitude,
PayloadModelName = x.PayloadModelName
PayloadModelName = x.PayloadModelName,
Type = x.Type
})
.ToPageListAsync(page, limit, totalCount);
return new Response<PageInfo<List<LasaMediaFile>>>

@ -1,12 +1,18 @@
using System.Drawing;
using System.Dynamic;
using System.Net;
using System.Text;
using Infrastructure;
using Infrastructure.CloudSdk;
using Infrastructure.CloudSdk.minio;
using Infrastructure.CloudSdk.wayline;
using Infrastructure.Extensions;
using Infrastructure.Helpers;
using MetadataExtractor;
using MetadataExtractor.Formats.Exif;
using Microsoft.AspNetCore.Http;
using Microsoft.IdentityModel.Tokens;
using Microsoft.Net.Http.Headers;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using OpenAuth.App.BaseApp.Base;
@ -22,6 +28,8 @@ using OpenAuth.Repository.Domain;
using OpenAuth.WebApi;
using OpenAuth.WebApi.CloudSdk;
using SqlSugar;
using Directory = System.IO.Directory;
using RangeHeaderValue = System.Net.Http.Headers.RangeHeaderValue;
namespace OpenAuth.App.ServiceApp
{
@ -969,7 +977,8 @@ namespace OpenAuth.App.ServiceApp
?.Value<int>(); // {"0":"无雨","1":"小雨","2":"中雨","3":"大雨"}
// 如果没有天气阻飞?
if (windSpeedThreshold <= windSpeed || rainThreshold <= rainfall || weatherWindSpeedThreshold <= weatherWindSpeed)
if (windSpeedThreshold <= windSpeed || rainThreshold <= rainfall ||
weatherWindSpeedThreshold <= weatherWindSpeed)
{
// 不让起飞
// 更新失败原因
@ -1871,5 +1880,283 @@ namespace OpenAuth.App.ServiceApp
Result = true
};
}
public async Task<Response<bool>> Test1111(string msg)
{
var sn = "8UUXN5400A079H";
var result = JsonConvert.DeserializeObject<TopicServicesRequest<dynamic>>(msg);
var method = result.method;
var data = result.data;
int flightType = data.flight_task.flight_type;
string flightId = data.file.ext.flight_id;
var taskAssign = GetTaskAssignByFlightId(flightId);
var taskId = taskAssign.TaskId;
var executeTask = await Repository.AsSugarClient()
.Queryable<LasaTask>()
.SingleAsync(a => a.Id == taskId);
string objectKey = data.file.object_key;
var folderKey = ((string)data.file.object_key).Split("/");
var parentKey = folderKey[2];
var isExist = await Repository.AsSugarClient()
.Queryable<LasaMediaFile>()
.Where(x => x.Id.Equals(parentKey)).CountAsync();
if (isExist == 0)
{
var date = DateTime.Now;
var timeStr = date.ToString("yyyy-MM-dd HH:mm:ss");
var parent1 = new LasaMediaFile()
{
Id = folderKey[2],
FlightId = flightId,
TaskId = taskId,
ParentKey = "0",
Name = string.IsNullOrEmpty(executeTask.TaskName)
? timeStr
: $"{executeTask.TaskName} {timeStr}",
WorkspaceId = executeTask.WorkspaceId,
CreateTime = date,
};
await Repository.AsSugarClient().Insertable(parent1).ExecuteCommandAsync();
}
// 重复检测
var mediaFile = await Repository.AsSugarClient()
.Queryable<LasaMediaFile>()
.Where(a => a.FlightId.Equals(flightId))
.Where(a => a.ObjectKey.Equals(objectKey)).SingleAsync();
if (mediaFile == null)
{
var type = 0;
var preSize = 5;
// todo 判断是不是图片
if (objectKey.EndsWith(".jpeg")) // todo 是否有其它类型的图片,待确定
{
preSize = 65535;
var fileName = Path.GetFileNameWithoutExtension(objectKey);
var fileNameParts = fileName.Split("_");
var suffix = fileNameParts[^1];
type = suffix switch
{
// 0 未知 1 可见光 2 红外 3 变焦 4.广角 5 视频
"V" => 1,
"T" => 2,
"Z" => 3, // 变焦
"W" => 4, // 广角
_ => type
};
}
else if (objectKey.EndsWith(".mp4"))
{
type = 5;
}
string suoluokey = "";
long? fileSize = 0;
int width = 0, height = 0, focalLength = 0;
int offset = 0, length = 0;
string model = "";
var fileUrl = "http://" + _minioService.endPoint + "/" + _minioService._bucketName +
"/" + objectKey;
using (var httpClient = new HttpClient())
{
suoluokey = "minipic/" + data.file.name.ToString();
// 目前读取64KB
// 添加Range请求头
httpClient.DefaultRequestHeaders.Range =
new RangeHeaderValue(0, preSize);
try
{
var response = httpClient
.GetAsync(fileUrl, HttpCompletionOption.ResponseHeadersRead).Result;
if (response.StatusCode == HttpStatusCode.PartialContent)
{
//Focal Length 35: 24 mm
//Exif Image Width: 4032 pixels : Exif SubIFD
//Exif Image Height: 3024 pixels : Exif SubIFD
// 3.1 解析Content-Range头格式bytes start-end/total
var contentRange = response.Content.Headers.ContentRange;
if (contentRange != null)
{
fileSize = contentRange.Length.Value;
Console.WriteLine(
$"获取范围:{contentRange.From}-{contentRange.To}/{contentRange.Length}");
}
if (objectKey.ToLower().EndsWith("jpeg"))
{
// 成功获取部分内容
var y = response.Content.ReadAsByteArrayAsync().Result;
MemoryStream ms = new MemoryStream(y);
var directories = ImageMetadataReader.ReadMetadata(ms);
foreach (var directory in directories)
{
if (directory is ExifDirectoryBase)
{
if (directory.Name.Equals("Exif IFD0"))
{
foreach (var tag in directory.Tags)
{
if (tag.Name.Equals("Model"))
{
model = tag.Description;
}
}
}
if (directory.Name.Equals("Exif SubIFD"))
{
foreach (var tag in directory.Tags)
{
if (tag.Name.Equals("Exif Image Width"))
{
width = int.Parse(tag.Description.Replace("pixels", "")
.Trim());
}
if (tag.Name.Equals("Exif Image Height"))
{
height = int.Parse(tag.Description.Replace("pixels", "")
.Trim());
}
if (tag.Name.Equals("Focal Length 35"))
{
focalLength = int.Parse(tag.Description
.Replace("mm", "")
.Trim());
}
}
}
//Console.WriteLine(directory.Name);
if (directory.Name.Equals("Exif Thumbnail"))
{
foreach (var tag in directory.Tags)
{
if (tag.Name.Equals("Thumbnail Offset"))
{
offset = int.Parse(tag.Description.Replace("bytes", "")
.Trim());
}
if (tag.Name.Equals("Thumbnail Length"))
{
length = int.Parse(tag.Description.Replace("bytes", "")
.Trim());
}
}
}
}
}
ms.Seek(offset + 6, SeekOrigin.Begin);
byte[] buffer = new byte[length];
int bytesRead = ms.Read(buffer, 0, length);
// 上传缩略图到MinIO
await _minioService.PutObjectAsync("", data.file.name.ToString(), suoluokey,
new MemoryStream(buffer));
}
}
else if (response.StatusCode == HttpStatusCode.OK)
{
// 服务器不支持Range请求返回完整内容
throw new InvalidOperationException("服务器不支持Range请求");
}
else
{
throw new HttpRequestException($"请求失败: {response.StatusCode}");
}
}
catch (Exception ex)
{
throw new Exception($"执行错误: {ex.Message}", ex);
}
}
var createdTimeStr = (string)data.file.metadata.created_time;
var createTime = string.IsNullOrEmpty(createdTimeStr)
? DateTime.Now
: createdTimeStr.ToDateTime();
var fileUpload = new LasaMediaFile()
{
Id = Guid.NewGuid().ToString(),
FlightId = flightId, // 计划id
TaskId = taskAssign.TaskId, // 任务id
DroneModelKey = data.file.ext.drone_model_key, // 无人机型号
PayloadModelKey = data.file.ext.payload_model_key, //这应该可以标明是什么设置
IsOriginal = data.file.ext.is_original,
MediaIndex = data.file.ext.media_index,
AbsoluteAltitude = data.file.metadata.absolute_altitude, // 拍摄绝对高度
GimbalYawDegree = data.file.metadata.gimbal_yaw_degree, //云台偏航角度
RelativeAltitude = data.file.metadata.relative_altitude, // 拍摄相对高度
Lat = data.file.metadata.shoot_position.lat,
Lng = data.file.metadata.shoot_position.lng,
Name = data.file.name,
ObjectKey = data.file.object_key,
Path = data.file.path, // 目前这个好像没有值
CreateTime = createTime,
WorkspaceId = executeTask.WorkspaceId,
ParentKey = folderKey[2],
Tid = result.tid,
Bid = result.bid,
FlightType = flightType,
Width = width,
Height = height,
minipic = suoluokey,
Size = fileSize,
ShowOnMap = 1,
display = 1,
FocalLength = focalLength,
PayloadModelName = model,
Type = type
};
// todo 添加事务
await Repository.AsSugarClient().Insertable(fileUpload).ExecuteCommandAsync();
}
if (result.need_reply.Equals(1))
{
var fileUploadCallbackEventReply = new FileUploadCallbackEventReply<object>()
{
bid = result.bid,
tid = result.tid,
method = "file_upload_callback",
gateway = sn,
data = new
{
result = 0
},
timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds(),
};
_ = _mqttClientManager.PublishAsync($"thing/product/{sn}/events_reply",
JsonConvert.SerializeObject(fileUploadCallbackEventReply));
}
var expectFileCount = data.flight_task.expected_file_count;
var uploadedFileCount = data.flight_task.uploaded_file_count;
var taskRecord = new LasaTask()
{
Id = taskId,
ExpectedFileCount = expectFileCount, // 期望文件数量
UploadedFileCount = uploadedFileCount // 已上传文件数量
};
// 当expectFileCount 等于uploadedFileCount时则表示航线执行完成
/*
if (uploadedFileCount.Equals(expectFileCount))
{
taskRecord.Status = 5; // 成功状态
}
*/
await Repository.AsSugarClient().Updateable(taskRecord)
.IgnoreNullColumns().ExecuteCommandAsync();
return new Response<bool>()
{
Result = true
};
}
}
}

@ -96,7 +96,7 @@ public class ConfigSubscribe : IJob
var result = JsonConvert.DeserializeObject<TopicServicesRequest<dynamic>>(message);
var method = result.method;
var data = result.data;
_logger.LogInformation($"主题:{topic}\n消息{message}");
_logger.LogDebug($"主题:{topic}\n消息{message}");
long code = 0;
switch (tempStr)
{
@ -205,12 +205,9 @@ public class ConfigSubscribe : IJob
switch (method)
{
case "file_upload_callback":
// todo 非图片文件添加文件大小
// todo 添加媒体文件类型
//
// 文件上传
_logger.LogInformation("进入文件上传处理");
_logger.LogInformation($"文件上传处理:{message}");
_logger.LogDebug("进入文件上传处理");
_logger.LogDebug($"文件上传处理:{message}");
int flightType = data.flight_task.flight_type;
string flightId = data.file.ext.flight_id;
var taskAssign = _manageApp.GetTaskAssignByFlightId(flightId);
@ -226,27 +223,6 @@ public class ConfigSubscribe : IJob
.Where(x => x.Id.Equals(parentKey)).CountAsync();
if (isExist == 0)
{
/*var parents = new List<LasaMediaFile>(3);
var parent1 = new LasaMediaFile()
{
Id = folderKey[0],
FlightId = flightId,
TaskId = taskId,
ParentKey = "0",
Name = folderKey[0],
WorkspaceId = executeTask.WorkspaceId,
};
parents.Add(parent1);
parent1 = new LasaMediaFile()
{
Id = folderKey[1],
FlightId = flightId,
TaskId = taskId,
ParentKey = folderKey[0],
Name = folderKey[1],
WorkspaceId = executeTask.WorkspaceId,
};
parents.Add(parent1);*/
var date = DateTime.Now;
var timeStr = date.ToString("yyyy-MM-dd HH:mm:ss");
var parent1 = new LasaMediaFile()
@ -272,7 +248,7 @@ public class ConfigSubscribe : IJob
if (mediaFile == null)
{
var type = 0;
var preSize = 512;
var preSize = 1;
// todo 判断是不是图片
if (objectKey.EndsWith(".jpeg")) // todo 是否有其它类型的图片,待确定
{
@ -324,7 +300,7 @@ public class ConfigSubscribe : IJob
if (contentRange != null)
{
fileSize = contentRange.Length.Value;
Console.WriteLine(
_logger.LogDebug(
$"获取范围:{contentRange.From}-{contentRange.To}/{contentRange.Length}");
}
@ -402,20 +378,20 @@ public class ConfigSubscribe : IJob
await _minioService.PutObjectAsync("", data.file.name.ToString(), suoluokey,
new MemoryStream(buffer));
}
else if (response.StatusCode == HttpStatusCode.OK)
{
// 服务器不支持Range请求返回完整内容
throw new InvalidOperationException("服务器不支持Range请求");
}
else
{
throw new HttpRequestException($"请求失败: {response.StatusCode}");
}
}
else if (response.StatusCode == HttpStatusCode.OK)
{
// 服务器不支持Range请求返回完整内容
throw new InvalidOperationException("服务器不支持Range请求");
}
else
{
throw new HttpRequestException($"请求失败: {response.StatusCode}");
}
}
catch (Exception ex)
{
throw new Exception($"下载Range数据失败: {ex.Message}", ex);
throw new Exception($"执行错误: {ex.Message}", ex);
}
}
@ -423,6 +399,7 @@ public class ConfigSubscribe : IJob
var createTime = string.IsNullOrEmpty(createdTimeStr)
? DateTime.Now
: createdTimeStr.ToDateTime();
_logger.LogDebug("执行到保存媒体文件之前");
var fileUpload = new LasaMediaFile()
{
Id = Guid.NewGuid().ToString(),

@ -36,7 +36,8 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
private readonly HttpClient _httpClient;
private readonly MinioService _minioService;
public AirportMaintenanceController(AirportMaintenanceApp app, MqttClientManager mqttClientManager, MqttMessageCenter mqttCenter, RedisCacheContext cache, HttpClient httpClient,MinioService minioService)
public AirportMaintenanceController(AirportMaintenanceApp app, MqttClientManager mqttClientManager,
MqttMessageCenter mqttCenter, RedisCacheContext cache, HttpClient httpClient, MinioService minioService)
{
_app = app;
_mqttClientManager = mqttClientManager;
@ -45,6 +46,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
_httpClient = httpClient;
_minioService = minioService;
}
/// <summary>
/// 机场注册 注册码生成
/// </summary>
@ -75,7 +77,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
{
device_binding_code = result.Result.DeviceBindingCode,
organization_id = result.Result.OrgId
}
}
}
@ -83,7 +84,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
string payload = JsonSerializer.Serialize(requestData);
await _mqttClientManager.PublishAsync(topicRequest, payload);
//在这个地方在接收一下?
}
}
catch (Exception ex)
@ -94,6 +94,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
return result;
}
/// <summary>
/// 机场注册 注册码生成
/// </summary>
@ -125,6 +126,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
return result;
}
/// <summary>
/// 获取网关列表
/// </summary>
@ -149,6 +151,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
}
#region 固件版本管理
/// <summary>
/// 添加固件版本
/// </summary>
@ -168,8 +171,10 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
result.Code = 500;
result.Message = ex.Message;
}
return result;
}
/// <summary>
/// 修改无人机或机场版本
/// </summary>
@ -189,8 +194,10 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
result.Code = 500;
result.Message = ex.Message;
}
return result;
}
/// <summary>
/// 上传固件文件
/// </summary>
@ -205,6 +212,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
var path = await _app.UploadFile(xmlFile);
return Ok(new { message = "上传成功", path });
}
#endregion
/// <summary>
@ -244,19 +252,18 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
await Task.CompletedTask;
});
response.Result = 0;
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.Message;
}
return response; ;
return response;
;
}
/// <summary>
/// 设置直播镜头
/// </summary>
@ -267,7 +274,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
Response<int> response = new Response<int>();
try
{
var videoids = zhiboReq.videoId.Split("/");
var topicRequest = $"thing/product/" + videoids[0] + "/services";
var requestData = new
@ -296,15 +302,14 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
});
response.Result = 0;
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.Message;
}
return response;
return response;
}
@ -346,15 +351,14 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
});
response.Result = 0;
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.Message;
}
return response;
return response;
}
@ -378,7 +382,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
data = new
{
video_id = zhiboReq.videoId
}
};
@ -396,17 +399,14 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
});
response.Result = 0;
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.Message;
}
return response;
return response;
}
@ -439,13 +439,11 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
access_key_secret = "minioadmin",
expire = 3600,
security_token = "security_token"
},
endpoint = "175.27.168.120:6013",
object_key_prefix = "",
provider = "ali",
region = "hz"
},
result = 0
}
@ -453,21 +451,17 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
response.Result = 0;
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.Message;
}
return response;
return response;
}
/// <summary>
/// 开始直播
/// </summary>
@ -507,21 +501,19 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
});
response.Result = 0;
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.Message;
}
return response;
return response;
}
#region redis 多用户控制
/// <summary>
/// 添加修改mqtt客户端信息
/// </summary>
@ -570,6 +562,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
{
await _cache.SetRemoveAsync(lockSetKey, info.UserId);
}
result.Result = true;
}
catch (Exception ex)
@ -577,8 +570,10 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
result.Code = 500;
result.Message = ex.Message;
}
return result;
}
/// <summary>
/// 获取当前用户mqtt客户端信息
/// </summary>
@ -597,8 +592,10 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
result.Code = 500;
result.Message = ex.Message;
}
return result;
}
private MqttClientResp ParseClient(HashEntry[] entries)
{
if (entries == null || entries.Length == 0)
@ -613,6 +610,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
IsLock = bool.Parse(dict["IsLock"])
};
}
/// <summary>
/// 获取所有锁定的用户客户端信息
/// </summary>
@ -630,11 +628,14 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
if (entries.Length > 0)
result.Add(ParseClient(entries));
}
return result;
}
#endregion
#region 获取告警信息
/// <summary>
/// 获取告警信息
/// </summary>
@ -646,12 +647,14 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
/// <param name="limit"></param>
/// <returns></returns>
[HttpGet]
public async Task<Response<PageInfo<List<LasaManageDeviceHms>>>> GetManageDeviceHmsList(int level, int model, DateTime startTime, DateTime endTime, int page, int limit, string message,string getway)
public async Task<Response<PageInfo<List<LasaManageDeviceHms>>>> GetManageDeviceHmsList(int level, int model,
DateTime startTime, DateTime endTime, int page, int limit, string message, string getway)
{
var result = new Response<PageInfo<List<LasaManageDeviceHms>>>();
try
{
result = await _app.GetManageDeviceHmsList(level, model, startTime, endTime, page, limit, message, getway);
result = await _app.GetManageDeviceHmsList(level, model, startTime, endTime, page, limit, message,
getway);
}
catch (Exception ex)
{
@ -661,9 +664,11 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
return result;
}
#endregion
#region 日志信息
/// <summary>
/// 根据设备sn读取实时数据
/// </summary>
@ -674,7 +679,8 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
/// <param name="limit"></param>
/// <returns></returns>
[HttpGet]
public async Task<Response<PageInfo<List<LasaLog>>>> GetLogList(string sn, DateTime startTime, DateTime endTime, int page, int limit)
public async Task<Response<PageInfo<List<LasaLog>>>> GetLogList(string sn, DateTime startTime, DateTime endTime,
int page, int limit)
{
var result = new Response<PageInfo<List<LasaLog>>>();
try
@ -686,42 +692,50 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
result.Code = 500;
result.Message = ex.Message;
}
return result;
}
#endregion
[HttpGet]
public async Task<Response<PageInfo<List<LasaMediaFile>>>> GetMediaFile(string taskId,string airId,string device,string picname, DateTime startTime, DateTime endTime, int page, int limit,string parentKey,int? objectKeyExist)
public async Task<Response<PageInfo<List<LasaMediaFile>>>> GetMediaFile(string taskId, string airId,
string device, int? type, string picname, DateTime startTime, DateTime endTime, int page, int limit,
string parentKey, int? objectKeyExist)
{
var result = new Response<PageInfo<List<LasaMediaFile>>>();
try
{
result = await _app.GetMediaFile(taskId,airId,device, picname,startTime, endTime, page, limit,parentKey,objectKeyExist);
result = await _app.GetMediaFile(taskId, airId, device,type, picname, startTime, endTime, page, limit,
parentKey, objectKeyExist);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.Message;
}
return result;
}
[HttpGet]
[AllowAnonymous]
public async Task<Response<string>> UpdatePicStatus(string id, int showOnMap,int display,string fileTags,string graffitiJson)
public async Task<Response<string>> UpdatePicStatus(string id, int showOnMap, int display, string fileTags,
string graffitiJson)
{
var result = new Response<string>();
try
{
result = await _app.UpdatePicStatus(id, showOnMap, display,fileTags,graffitiJson);
result = await _app.UpdatePicStatus(id, showOnMap, display, fileTags, graffitiJson);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.Message;
}
return result;
}
@ -739,6 +753,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
result.Code = 500;
result.Message = ex.Message;
}
return result;
}
@ -756,6 +771,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
result.Code = 500;
result.Message = ex.Message;
}
return result;
}
@ -774,8 +790,10 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
result.Code = 500;
result.Message = ex.Message;
}
return result;
}
[HttpGet]
[AllowAnonymous]
public async Task<Response<string>> getMiniPic()
@ -783,9 +801,10 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
var result = new Response<string>();
try
{
// string presignedUrl = "http://175.27.168.120:6014/test/44fc8b4b-9448-4e79-a71d-536d094b8598/ad854032-d4b7-42dc-8ac0-d1faef0ebc1e/DJI_202507231000_002_ad854032-d4b7-42dc-8ac0-d1faef0ebc1e/DJI_20250723100110_0001_V.jpeg";
var imageStream = _minioService.GetObjectAsStream("test", "44fc8b4b-9448-4e79-a71d-536d094b8598/ad854032-d4b7-42dc-8ac0-d1faef0ebc1e/DJI_202507231000_002_ad854032-d4b7-42dc-8ac0-d1faef0ebc1e/DJI_20250723100110_0001_V.jpeg");
// var imageStream = await _httpClient.GetStreamAsync(presignedUrl);
// string presignedUrl = "http://175.27.168.120:6014/test/44fc8b4b-9448-4e79-a71d-536d094b8598/ad854032-d4b7-42dc-8ac0-d1faef0ebc1e/DJI_202507231000_002_ad854032-d4b7-42dc-8ac0-d1faef0ebc1e/DJI_20250723100110_0001_V.jpeg";
var imageStream = _minioService.GetObjectAsStream("test",
"44fc8b4b-9448-4e79-a71d-536d094b8598/ad854032-d4b7-42dc-8ac0-d1faef0ebc1e/DJI_202507231000_002_ad854032-d4b7-42dc-8ac0-d1faef0ebc1e/DJI_20250723100110_0001_V.jpeg");
// var imageStream = await _httpClient.GetStreamAsync(presignedUrl);
using (var image = Image.Load(imageStream.Result))
{
@ -803,18 +822,20 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
{
thumbnail.SaveAsJpeg(memoryStream); // 可以根据需要选择不同的格式如Png, Bmp等。
memoryStream.Position = 0; // 重置流的位置到开始处
// 上传缩略图到MinIO
await _minioService.PutObjectAsync("test" , "suolue_DJI_20250723100110_0001_V.jpeg", "abc/suolue_DJI_20250723100110_0001_V.jpeg", memoryStream); // 根据实际格式修改Content-Type
await _minioService.PutObjectAsync("test", "suolue_DJI_20250723100110_0001_V.jpeg",
"abc/suolue_DJI_20250723100110_0001_V.jpeg", memoryStream); // 根据实际格式修改Content-Type
}
}
}
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.Message;
}
return result;
}
}
}
}

@ -843,5 +843,12 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
return await _app.CreateMediaFolder(name,parentKey);
}
#endregion
[HttpPost]
[AllowAnonymous]
public async Task<Response<bool>> Test1111(string msg)
{
return await _app.Test1111(msg);
}
}
}
Loading…
Cancel
Save