Пример #1
0
        /// <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;
            }
        }
Пример #2
0
        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);
        }