/* * Copyright (C) Alibaba Cloud Computing * All rights reserved. * * 版权所有 (C)阿里云计算有限公司 */ using System.Collections.Generic; namespace Aliyun.OSS { /// <summary> /// 设置指定Bucket的Referer白名单和是否允许referer字段为空的请求。 /// </summary> public class SetBucketRefererRequest { private readonly IList<string> _refererList = new List<string>(); /// <summary> /// 获取或者设置<see cref="OssObject" />所在<see cref="Bucket" />的名称。 /// </summary> public string BucketName { get; private set; } /// <summary> /// 指定是否允许referer字段为空的请求访问。 /// </summary> public bool AllowEmptyReferer { get; private set; } /// <summary> /// 获取或者设置需要删除的referer列表。 /// </summary> public IList<string> RefererList { get { return _refererList; } } /// <summary> /// 使用空的referer列表、允许referer为空的请求访问的构造函数。 /// </summary> /// <param name="bucketName"><see cref="OssObject"/></param> public SetBucketRefererRequest(string bucketName) : this(bucketName, null, true) { } /// <summary> /// 使用指定的referer列表、允许referer为空的请求访问的构造函数。 /// </summary> /// <param name="bucketName"><see cref="OssObject"/></param> /// <param name="refererList">referer列表</param> public SetBucketRefererRequest(string bucketName, IList<string> refererList) : this(bucketName, refererList, true) { } /// <summary> /// 使用指定的referer列表、是否允许referer为空的请求访问的构造函数。 /// </summary> /// <param name="bucketName"><see cref="OssObject"/></param> /// <param name="refererList">referer列表</param> /// <param name="allowEmptyReferer">是否允许referer为空的请求访问</param> public SetBucketRefererRequest(string bucketName, IEnumerable<string> refererList, bool allowEmptyReferer) { if (refererList != null) { foreach (var referer in refererList) { if (string.IsNullOrEmpty(referer)) continue; _refererList.Add(referer); } } BucketName = bucketName; AllowEmptyReferer = allowEmptyReferer; } /// <summary> /// 清空referer列表。 /// </summary> public void ClearRefererList() { RefererList.Clear(); } } }