/// <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); } }
/// <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); } }
/// <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); } }