protected new PutRecordsResult InnerPutRecords(PutRecordsRequest putRecordsParam) { // Decorate PutRecordsRequest if needed putRecordsParam = DecorateRecords(putRecordsParam); ObsWebServiceRequest obsWebServiceRequest = new DISWebServiceRequest(); OBS.Runtime.Internal.IRequest requestobs = new DISDefaultRequest(obsWebServiceRequest, Constants.SERVICENAME) { HttpMethod = HttpMethodName.POST.ToString() }; string resourcePath = ResourcePathBuilder.Standard() .WithProjectId(_disConfig.GetProjectId()) .WithResource(new RecordResource(null)) .Build(); requestobs.ResourcePath = resourcePath; if (_disConfig.GetBodySerializeType().ToLower().Equals(BodySerializeType.Protobuf.ToString().ToLower())) { requestobs.Headers.Add("Content-Type", "application/x-protobuf; charset=utf-8"); requestobs.Headers.Add("accept", "*/*"); HuaweiCloud.DIS.Api.Protobuf.PutRecordsRequest protoRequest = ProtobufUtils.ToProtobufPutRecordsRequest(putRecordsParam); HuaweiCloud.DIS.Api.Protobuf.PutRecordsResult protoResult = Request <HuaweiCloud.DIS.Api.Protobuf.PutRecordsResult>(protoRequest.ToByteArray(), requestobs, InterfaceType.DISInterfacePutRecords); PutRecordsResult result = ProtobufUtils.ToPutRecordsResult(protoResult); return(result); } else { var results = Request <PutRecordsResult>(putRecordsParam, requestobs); return(results); } }
/// <summary> /// 从protobuf类型的上传数据响应,转换为标准的响应类型 /// </summary> /// <param name="putRecordsResult"></param> /// <returns></returns> public static PutRecordsResult ToPutRecordsResult(HuaweiCloud.DIS.Api.Protobuf.PutRecordsResult putRecordsResult) { PutRecordsResult result = new PutRecordsResult(); result.FailedRecordCount = putRecordsResult.FailedRecordCount; List <PutRecordsResultEntry> records = new List <PutRecordsResultEntry>(); foreach (HuaweiCloud.DIS.Api.Protobuf.PutRecordsResultEntry protoEntry in putRecordsResult.Records) { PutRecordsResultEntry entry = new PutRecordsResultEntry(); entry.ErrorCode = string.IsNullOrEmpty(protoEntry.ErrorCode) ? null : protoEntry.ErrorCode; entry.SequenceNumber = string.IsNullOrEmpty(protoEntry.SequenceNumber) ? null : protoEntry.SequenceNumber; entry.SequenceNumber = protoEntry.SequenceNumber; entry.ShardId = protoEntry.ShardId; records.Add(entry); } result.Records = records; return(result); }