public async Task Handle(UploadLogJsonTypeByHttpMessageRequest request, CancellationToken cancellationToken)
{
_logger.LogInformation("上传系统json log");
//新开个线程处理
_ = Task.Run(async () =>
{
try
{
var jsonContent = JsonSerializer.Serialize(ApplicationConst.MesLogInfo);
var timeStamp = DateTime.Now.ToString("yyyyMMdd_HHmmss");
var fileName = $"{ApplicationConst.MachineInfo.DeviceSn}_{ApplicationConst.LogInfo.MachinePartNum}_{timeStamp}.log";
await File.AppendAllTextAsync(fileName, jsonContent, cancellationToken);
await SimpleUpload(fileName);
File.Delete(fileName);
_logger.LogInformation($"上传系统json log成功,文件名:{fileName}");
}
catch (Exception e)
{
_logger.LogError($"上报系统json log失败:{e}");
}
}, ApplicationConst.CancellationTokenSource.Token);
}
private async Task SimpleUpload(string localFile)
{
var auth = new NtlmPasswordAuthentication($"{ApplicationConst.ClientConfig.SmbDomain};{ApplicationConst.ClientConfig.SmbAccount}:{ApplicationConst.ClientConfig.SmbPassword}");
var remoteFile = new SmbFile($"smb://{ApplicationConst.ClientConfig.LogUploadUrl}/{ApplicationConst.ClientConfig.Folder}/{localFile}", auth);
await using var localStream = new FileStream(localFile, FileMode.OpenOrCreate, FileAccess.ReadWrite);
using var remoteStream = remoteFile.GetOutputStream();
await localStream.CopyToAsync(remoteStream);
}