/// <summary> /// 上传文件到服务器 /// </summary> /// <param name="filePath">本地文件路径</param> /// <param name="isNew">是否新建</param> public UploadRes FileSingleUpload(string filePath, bool isNew, string token) { // 调用接口 try { EASAPIModel model = GetAPIModel(token); FileUploadDownloadService fileUploadService = new FileUploadDownloadServiceImpl(); // 设置传参 SingleUploadReq body = new SingleUploadReq(); body.Docid = model.DocId.Substring(0, model.DocId.LastIndexOf('/')); body.FilePath = filePath; body.Ondup = isNew ? 2 : 3; return(fileUploadService.SingleUpload(body, APIInstanceManager.GetApiInstance(model.TokenId, model.Host))); } catch (Exception e) { throw e; } }
public UploadRes SingleUpload(SingleUploadReq uploadReq, DefaultApi apiInstance) { // 调用 osbeginupload API FileInfo fi = new FileInfo(uploadReq.FilePath); uploadReq.Length = fi.Length; uploadReq.Name = fi.Name; FileOsbeginuploadReq osbeginuploadBody = new FileOsbeginuploadReq(); osbeginuploadBody = uploadReq; FileOsbeginuploadRes osbeginuploadResult = apiInstance.FileOsbeginuploadPost(osbeginuploadBody); // 根据服务器返回的对象存储请求,向对象存储上传数据 byte[] body = CommonUtil.FileToBytes(uploadReq.FilePath); List <String> headers = new List <String>(); List <String> authRequestList = osbeginuploadResult.Authrequest; for (int i = 2; i < authRequestList.Count; ++i) { String header = authRequestList[i]; headers.Add(header); } var res = ossHttpHelper.SendReqToOSS(authRequestList[0], authRequestList[1], headers, body); // 调用osendupload API FileOsenduploadReq osenduploadBody = new FileOsenduploadReq(); osenduploadBody.Docid = osbeginuploadResult.Docid; osenduploadBody.Rev = osbeginuploadResult.Rev; FileOsenduploadRes osenduploadResult = apiInstance.FileOsenduploadPost(osenduploadBody); UploadRes uploadRes = new UploadRes(); uploadRes.DocId = osbeginuploadResult.Docid; uploadRes.Rev = osbeginuploadResult.Rev; return(uploadRes); }