Exemple #1
0
        /// <summary>
        /// 删除单个对象
        /// </summary>
        /// <param name="key">对象在存储桶中的位置,即称对象键(也可以理解为在存储桶路径)</param>
        /// <param name="bucketName">存储桶,格式:BucketName-APPID</param>
        public static CosResultInfoResponseDto DeleteObject(string key, string bucketName = CosConfig.DEFAULT_BUCKET)
        {
            var cosXml   = InitializeCosConfig();
            var response = new CosResultInfoResponseDto();

            try
            {
                string bucket = $"{bucketName}-{AppId}"; //存储桶,格式:BucketName-APPID";
                DeleteObjectRequest request = new DeleteObjectRequest(bucket, key);
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
                //执行请求
                DeleteObjectResult result = cosXml.DeleteObject(request);
                //请求成功
                response.statusCode    = result.httpCode;
                response.statusMessage = result.httpMessage;
                return(response);
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                //请求失败
                response.statusCode    = clientEx.errorCode;
                response.statusMessage = clientEx.Message;
                response.info          = clientEx.ToJson();
                return(response);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                //请求失败
                response.statusCode    = serverEx.statusCode;
                response.statusMessage = serverEx.statusMessage;
                response.info          = serverEx.GetInfo();
                return(response);
            }
        }
Exemple #2
0
        /// <summary>
        /// 简单上传对象
        /// 上传一个对象至存储桶。最大支持上传不超过5GB的对象
        /// </summary>
        /// <param name="key">对象在存储桶中的位置,即称对象键(也可以理解为在存储桶路径)</param>
        /// <param name="data">图片/视频 byte[]数据</param>
        /// <param name="bucketName">存储桶,格式:BucketName-APPID</param>
        public static CosResultInfoResponseDto UploadObject(string key, byte[] data, string bucketName = CosConfig.DEFAULT_BUCKET)
        {
            var cosXml   = InitializeCosConfig();
            var response = new CosResultInfoResponseDto();

            try
            {
                string           bucket  = $"{bucketName}-{AppId}"; //存储桶,格式:BucketName-APPID";
                PutObjectRequest request = new PutObjectRequest(bucket, key, data);
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
                //设置进度回调
                request.SetCosProgressCallback(delegate(long completed, long total)
                {
                    Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));
                });
                //执行请求
                PutObjectResult result = cosXml.PutObject(request);
                //对象的 eTag
                string eTag = result.eTag;

                //拼接Url
                var cosDataUrl = $"https://{bucket}.cos.{CosConfig.REGION}.myqcloud.com{key}";

                response.statusCode    = result.httpCode;
                response.statusMessage = result.httpMessage;
                response.cosDataUrl    = cosDataUrl;
                return(response);
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                //请求失败
                response.statusCode    = clientEx.errorCode;
                response.statusMessage = clientEx.Message;
                response.info          = clientEx.ToJson();
                return(response);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                //请求失败
                response.statusCode    = serverEx.statusCode;
                response.statusMessage = serverEx.statusMessage;
                response.info          = serverEx.GetInfo();
                return(response);
            }
        }
Exemple #3
0
        /// <summary>
        /// 存储桶格式 [自定义]-[APPID]
        /// </summary>
        public static CosResultInfoResponseDto CreateBucket(string bucketName)
        {
            var cosXml   = InitializeCosConfig();
            var response = new CosResultInfoResponseDto();

            try
            {
                string           bucket  = $"{bucketName}-{AppId}"; //格式:BucketName-APPID
                PutBucketRequest request = new PutBucketRequest(bucket);
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
                //执行请求
                PutBucketResult result = cosXml.PutBucket(request);
                //请求成功
                //请求成功
                response.statusCode    = result.httpCode;
                response.statusMessage = result.httpMessage;
                return(response);
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                //请求失败
                response.statusCode    = clientEx.errorCode;
                response.statusMessage = clientEx.Message;
                response.info          = clientEx.ToJson();
                return(response);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                //请求失败
                response.statusCode    = serverEx.statusCode;
                response.statusMessage = serverEx.statusMessage;
                response.info          = serverEx.GetInfo();
                return(response);
            }
        }