SetBucketCorsRequest.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * Copyright (C) Alibaba Cloud Computing
  3. * All rights reserved.
  4. *
  5. * 版权所有 (C)阿里云计算有限公司
  6. */
  7. using System;
  8. using System.Collections.Generic;
  9. using Aliyun.OSS.Util;
  10. namespace Aliyun.OSS
  11. {
  12. /// <summary>
  13. /// 设置存储空间的跨域资源共享的请求
  14. /// </summary>
  15. public class SetBucketCorsRequest
  16. {
  17. private IList<CORSRule> _corsRules = new List<CORSRule>();
  18. /// <summary>
  19. /// 获取<see cref="OssObject" />所在<see cref="Bucket" />的名称。
  20. /// </summary>
  21. public string BucketName { get; private set; }
  22. /// <summary>
  23. /// CORS规则的容器,每个bucket最多允许10条规则。
  24. /// </summary>
  25. public IList<CORSRule> CORSRules
  26. {
  27. get { return ((List<CORSRule>) _corsRules).AsReadOnly(); }
  28. set
  29. {
  30. if (value == null)
  31. throw new ArgumentException("CORSRule list should not be null.");
  32. if (value.Count > OssUtils.BucketCorsRuleLimit)
  33. throw new ArgumentException("One bucket not allow exceed ten item of CORSRules.");
  34. _corsRules = value;
  35. }
  36. }
  37. /// <summary>
  38. /// 构造一个新的<see cref="SetBucketCorsRequest" />实例。
  39. /// </summary>
  40. /// <param name="bucketName"><see cref="OssObject" />所在<see cref="Bucket" />的名称。</param>
  41. public SetBucketCorsRequest(string bucketName)
  42. {
  43. BucketName = bucketName;
  44. }
  45. /// <summary>
  46. /// 添加一条CORSRule。
  47. /// </summary>
  48. /// <param name="corsRule"></param>
  49. public void AddCORSRule(CORSRule corsRule)
  50. {
  51. if (corsRule == null)
  52. throw new ArgumentException("corsRule should not be null or empty");
  53. if (_corsRules.Count >= OssUtils.BucketCorsRuleLimit)
  54. throw new ArgumentException("One bucket not allow exceed ten item of CORSRules.");
  55. if (corsRule.AllowedOrigins.Count == 0)
  56. throw new ArgumentException("corsRule.AllowedOrigins should not be empty");
  57. if (corsRule.AllowedMethods.Count == 0)
  58. throw new ArgumentException("corsRule.AllowedMethods should not be empty.");
  59. _corsRules.Add(corsRule);
  60. }
  61. }
  62. }