Пример #1
0
        public void AsynPutObject(COSXML.CosXml cosXml, string bucket, string key, string srcPath)
        {
            PutObjectRequest request = new PutObjectRequest(bucket, key, srcPath);

            //设置签名有效时长
            request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

            //设置进度回调
            request.SetCosProgressCallback(delegate(long completed, long total)
            {
                //Console.WriteLine(String.Format("progress = {0} / {1} : {2:##.##}%", completed, total, completed * 100.0 / total));
            });
            //添加acl
            request.SetCosACL(CosACL.PRIVATE);

            COSXML.Model.Tag.GrantAccount readAccount = new COSXML.Model.Tag.GrantAccount();
            readAccount.AddGrantAccount("1131975903", "1131975903");
            request.SetXCosGrantRead(readAccount);

            COSXML.Model.Tag.GrantAccount writeAccount = new COSXML.Model.Tag.GrantAccount();
            writeAccount.AddGrantAccount("1131975903", "1131975903");
            request.SetXCosGrantWrite(writeAccount);

            COSXML.Model.Tag.GrantAccount fullAccount = new COSXML.Model.Tag.GrantAccount();
            fullAccount.AddGrantAccount("2832742109", "2832742109");
            request.SetXCosReadWrite(fullAccount);
            cosXml.PutObject(request,
                             delegate(CosResult cosResult)
            {
                PutObjectResult result = cosResult as PutObjectResult;
                Console.WriteLine(result.GetResultInfo());
                manualResetEvent.Set();
            },
                             delegate(CosClientException clientEx, CosServerException serverEx)
            {
                if (clientEx != null)
                {
                    Console.WriteLine("CosClientException: " + clientEx.Message);
                }
                if (serverEx != null)
                {
                    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                }

                manualResetEvent.Set();
            });
        }
Пример #2
0
        public void AsynPutObject()
        {
            AutoResetEvent   resetEvent = new AutoResetEvent(false);
            PutObjectRequest request    = new PutObjectRequest(bucket, commonKey, smallFileSrcPath);

            //添加acl
            request.SetCosACL(CosACL.PRIVATE);

            COSXML.Model.Tag.GrantAccount readAccount = new COSXML.Model.Tag.GrantAccount();
            readAccount.AddGrantAccount("1131975903", "1131975903");
            request.SetXCosGrantRead(readAccount);

            COSXML.Model.Tag.GrantAccount writeAccount = new COSXML.Model.Tag.GrantAccount();
            writeAccount.AddGrantAccount("1131975903", "1131975903");
            request.SetXCosGrantWrite(writeAccount);

            COSXML.Model.Tag.GrantAccount fullAccount = new COSXML.Model.Tag.GrantAccount();
            fullAccount.AddGrantAccount("2832742109", "2832742109");
            request.SetXCosReadWrite(fullAccount);
            cosXml.PutObject(request,
                             delegate(CosResult cosResult)
            {
                PutObjectResult result = cosResult as PutObjectResult;
                Console.WriteLine(result.GetResultInfo());
                resetEvent.Set();
            },
                             delegate(CosClientException clientEx, CosServerException serverEx)
            {
                if (clientEx != null)
                {
                    Console.WriteLine("CosClientException: " + clientEx.Message);
                }
                if (serverEx != null)
                {
                    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                }

                resetEvent.Set();
            });
            resetEvent.WaitOne();
        }