public void ObjectBasicTest()
        {
            //Get Case
            var key = OssTestUtils.GetObjectKey(_className);

            _ossClient.PutObject(_bucketName, key, new MemoryStream(Encoding.ASCII.GetBytes("hello world")));

            var getRequest = new GetObjectRequest(_bucketName, key);

            Assert.AreEqual(getRequest.RequestPayer, RequestPayer.BucketOwner);

            try
            {
                _ossPayerClient.GetObject(getRequest);
                Assert.Fail("should not here.");
            }
            catch (OssException e)
            {
                Assert.AreEqual(e.ErrorCode, "AccessDenied");
            }

            getRequest.RequestPayer = RequestPayer.Requester;
            var getResult = _ossPayerClient.GetObject(getRequest);

            Assert.AreEqual(getResult.ContentLength, 11);
            _ossClient.DeleteObject(_bucketName, key);

            //Put Case
            key = OssTestUtils.GetObjectKey(_className);
            var content    = new MemoryStream(Encoding.ASCII.GetBytes("hello world"));
            var putRequest = new PutObjectRequest(_bucketName, key, content);

            Assert.AreEqual(putRequest.RequestPayer, RequestPayer.BucketOwner);

            try
            {
                _ossPayerClient.PutObject(putRequest);
                Assert.Fail("should not here.");
            }
            catch (OssException e)
            {
                Assert.AreEqual(e.ErrorCode, "AccessDenied");
            }

            content    = new MemoryStream(Encoding.ASCII.GetBytes("hello world"));
            putRequest = new PutObjectRequest(_bucketName, key, content);
            putRequest.RequestPayer = RequestPayer.Requester;
            var putResult = _ossPayerClient.PutObject(putRequest);

            Assert.AreEqual(putResult.HttpStatusCode, HttpStatusCode.OK);

            //head object
            var headRequest = new GetObjectMetadataRequest(_bucketName, key);

            Assert.AreEqual(headRequest.RequestPayer, RequestPayer.BucketOwner);

            try
            {
                _ossPayerClient.GetObjectMetadata(headRequest);
                Assert.Fail("should not here.");
            }
            catch (Exception e)
            {
                Assert.IsTrue(true, e.Message);
            }

            headRequest.RequestPayer = RequestPayer.Requester;
            var headResult = _ossPayerClient.GetObjectMetadata(headRequest);

            Assert.AreEqual(headResult.ContentLength, 11);

            //Delete Case
            Assert.IsTrue(_ossClient.DoesObjectExist(_bucketName, key));

            var delReqeust = new DeleteObjectRequest(_bucketName, key);

            Assert.AreEqual(delReqeust.RequestPayer, RequestPayer.BucketOwner);

            try
            {
                _ossPayerClient.DeleteObject(delReqeust);
                Assert.Fail("should not here.");
            }
            catch (OssException e)
            {
                Assert.AreEqual(e.ErrorCode, "AccessDenied");
            }

            delReqeust = new DeleteObjectRequest(_bucketName, key);
            delReqeust.RequestPayer = RequestPayer.Requester;
            _ossPayerClient.DeleteObject(delReqeust);

            Assert.IsFalse(_ossClient.DoesObjectExist(_bucketName, key));

            //delete objects
            var keys = new List <string>();

            keys.Add(key);
            var delsReqeust = new DeleteObjectsRequest(_bucketName, keys);

            Assert.AreEqual(delsReqeust.RequestPayer, RequestPayer.BucketOwner);
            try
            {
                _ossPayerClient.DeleteObjects(delsReqeust);
                Assert.Fail("should not here.");
            }
            catch (OssException e)
            {
                Assert.AreEqual(e.ErrorCode, "AccessDenied");
            }

            delsReqeust.RequestPayer = RequestPayer.Requester;
            _ossPayerClient.DeleteObjects(delsReqeust);

            //delete object versions
            var objects = new List <ObjectIdentifier>();

            objects.Add(new ObjectIdentifier(key));
            var delvsReqeust = new DeleteObjectVersionsRequest(_bucketName, objects);

            Assert.AreEqual(delvsReqeust.RequestPayer, RequestPayer.BucketOwner);
            try
            {
                _ossPayerClient.DeleteObjectVersions(delvsReqeust);
                Assert.Fail("should not here.");
            }
            catch (OssException e)
            {
                Assert.AreEqual(e.ErrorCode, "AccessDenied");
            }

            delvsReqeust.RequestPayer = RequestPayer.Requester;
            _ossPayerClient.DeleteObjectVersions(delvsReqeust);


            //list objets
            var lsRequest = new ListObjectsRequest(_bucketName);

            Assert.AreEqual(lsRequest.RequestPayer, RequestPayer.BucketOwner);
            try
            {
                _ossPayerClient.ListObjects(lsRequest);
                Assert.Fail("should not here.");
            }
            catch (OssException e)
            {
                Assert.AreEqual(e.ErrorCode, "AccessDenied");
            }

            lsRequest.RequestPayer = RequestPayer.Requester;
            _ossPayerClient.ListObjects(lsRequest);
        }