コード例 #1
0
        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);
            }
        }
コード例 #2
0
        /// <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);
        }