C# 使用SharpCifs 对接SMB协议

  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);
    }
posted @ 2026-03-04 11:49  Timskt  阅读(4)  评论(0)    收藏  举报