using System; using System.Collections.Generic; using System.Text; using COSXML.Common; using COSXML.Model.Tag; using COSXML.Network; using COSXML.CosException; namespace COSXML.Model.Bucket { /// <summary> /// 设置 Bucket CORS /// <see href="https://cloud.tencent.com/document/product/436/8279"/> /// </summary> public sealed class PutBucketCORSRequest : BucketRequest { /// <summary> /// CORS 配置信息 /// <see href="Model.Tag.CORSConfiguration"/> /// </summary> private CORSConfiguration corsConfiguration; public PutBucketCORSRequest(string bucket) : base(bucket) { this.method = CosRequestMethod.PUT; this.queryParameters.Add("cors", null); corsConfiguration = new CORSConfiguration(); corsConfiguration.corsRules = new List<CORSConfiguration.CORSRule>(); } public override Network.RequestBody GetRequestBody() { return GetXmlRequestBody(corsConfiguration); } /// <summary> /// 设置 CORS 规则 /// <see href="Model.Tag.CORSConfiguration.CORSRule"/> /// </summary> /// <param name="corsRule"></param> public void SetCORSRule(CORSConfiguration.CORSRule corsRule) { if (corsRule != null) { corsConfiguration.corsRules.Add(corsRule); } } /// <summary> /// 设置 CORS 规则 /// <see href="Model.Tag.CORSConfiguration.CORSRule"/> /// </summary> /// <param name="corsRules"></param> public void SetCORSRules(List<CORSConfiguration.CORSRule> corsRules) { if (corsRules != null) { corsConfiguration.corsRules.AddRange(corsRules); } } public override void CheckParameters() { base.CheckParameters(); if (corsConfiguration.corsRules.Count == 0) { throw new CosClientException((int)CosClientError.InvalidArgument, "corsConfiguration.corsRules.Count = 0"); } } } }