/// <summary> /// 处理上传文件块 /// </summary> /// <param name="message">消息</param> /// <param name="chunkInfo">文件块信息</param> /// <returns>完成上传时返回消息</returns> async Task <string> IFileGrain.UploadFileChunk(string message, FileChunkInfo chunkInfo) { string targetPath = Path.Combine(UploadPath, chunkInfo.FileName); if (chunkInfo.Stop) { if (File.Exists(targetPath)) { File.Delete(targetPath); } } else { try { await using (FileStream targetStream = new FileStream(targetPath, FileMode.OpenOrCreate, FileAccess.Write)) { await chunkInfo.WriteAsync(targetStream); } } catch (OperationCanceledException) { if (File.Exists(targetPath)) { File.Delete(targetPath); } throw; } if (chunkInfo.Done && _service != null) { return(await _service.AfterUploadFile(message, targetPath)); } } return(null); }