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 { /// /// 设置 Bucket CORS /// /// public sealed class PutBucketCORSRequest : BucketRequest { /// /// CORS 配置信息 /// /// 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(); this.needMD5 = true; } public override Network.RequestBody GetRequestBody() { string content = Transfer.XmlBuilder.BuildCORSConfigXML(corsConfiguration); byte[] data = Encoding.UTF8.GetBytes(content); ByteRequestBody body = new ByteRequestBody(data); return body; } /// /// 设置 CORS 规则 /// /// /// public void SetCORSRule(CORSConfiguration.CORSRule corsRule) { if (corsRule != null) { corsConfiguration.corsRules.Add(corsRule); } } /// /// 设置 CORS 规则 /// /// /// public void SetCORSRules(List corsRules) { if (corsRules != null) { corsConfiguration.corsRules.AddRange(corsRules); } } public override void CheckParameters() { base.CheckParameters(); if (corsConfiguration.corsRules.Count == 0) throw new CosClientException((int)CosClientError.INVALID_ARGUMENT, "corsConfiguration.corsRules.Count = 0"); } } }