예제 #1
0
        //public PutRecordResult PutRecord(PutRecordRequest putRecordParam)
        //{
        //    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;
        //    var results = Request<PutRecordResult>(putRecordParam, requestobs);

        //    return results;
        //}

        protected PutRecordsRequest DecorateRecords(PutRecordsRequest putRecordsParam)
        {
            //加密
            if (IsEncrypt())
            {
                if (putRecordsParam.Records != null)
                {
                    for (int i = 0; i < putRecordsParam.Records.Count; i++)
                    {
                        putRecordsParam.Records[i].Data = Encrypt(new MemoryStream(putRecordsParam.Records[i].Data));
                    }
                }
            }

            //压缩
            if (_disConfig.IsDataCompressEnabled())
            {
                if (putRecordsParam.Records != null)
                {
                    for (int i = 0; i < putRecordsParam.Records.Count; i++)
                    {
                        byte[] input = putRecordsParam.Records[i].Data;
                        try
                        {
                            byte[] compressedInput = CompressUtils.Compress(input);
                            putRecordsParam.Records[i].Data = compressedInput;
                        }
                        catch (IOException e)
                        {
                            logger.Error(e.Message, e);
                            throw new Exception(e.Message);
                        }
                    }
                }
            }

            return(putRecordsParam);
        }