/// <summary> /// 创建bucket /// </summary> /// <param name="bucketName">bucket名</param> /// <param name="referers">白名单字符串数组Json</param> /// <param name="ossPoint">站点</param> /// <param name="accessId">accessId</param> /// <param name="accessKey">accessKey</param> /// <returns></returns> public static bool SetBucketReferer(string bucketName, string referers) { if (string.IsNullOrWhiteSpace(bucketName)) { throw new Exception("Bucket名称为空"); } //建立Oss客户端连接 OssClient client = ConnOssClient(); if (!client.DoesBucketExist(bucketName)) { throw new Exception("Bucket还没有建立"); } //设置白名单 if (string.IsNullOrWhiteSpace(referers)) { var request = new SetBucketRefererRequest(bucketName); client.SetBucketReferer(request); } else { List <string> refererList = JSONHelper.JsonToModel <List <string> >(referers);//jSON 反序列化 var request = new SetBucketRefererRequest(bucketName, refererList); client.SetBucketReferer(request); } return(true); }
private SetBucketRefererCommand(IServiceClient client, Uri endpoint, ExecutionContext context, string bucketName, SetBucketRefererRequest setBucketRefererRequest) : base(client, endpoint, context) { OssUtils.CheckBucketName(bucketName); _bucketName = bucketName; _setBucketRefererRequest = setBucketRefererRequest; }
public void SetBucketRefersNullListTest() { var sbrRequest = new SetBucketRefererRequest(_bucketName, null); _ossClient.SetBucketReferer(sbrRequest); OssTestUtils.WaitForCacheExpire(); var referConfig = _ossClient.GetBucketReferer(_bucketName); Assert.IsNull(referConfig.RefererList.Referers); }
private void UpdateBucketSetting(Bucket430 bucket) { Client.SetBucketAcl(bucket.Name, bucket.CannedAccessControl); var bucketCorsRequest = bucket.ToCORSRules(); var bucketRefererRequest = new SetBucketRefererRequest(bucket.Name, bucket.RefererList, bucket.AllowEmptyReferer); Client.SetBucketCors(bucketCorsRequest); Client.SetBucketReferer(bucketRefererRequest); }
public void SetBucketRefersEmptyListTest() { var sbrRequest = new SetBucketRefererRequest(_bucketName, new List <string>(), false); _ossClient.SetBucketReferer(sbrRequest); OssTestUtils.WaitForCacheExpire(); var referConfig = _ossClient.GetBucketReferer(_bucketName); Assert.IsNull(referConfig.RefererList.Referers); Assert.IsFalse(referConfig.AllowEmptyReferer); }
public void SetBucketRefersNullElementTest() { //initialize refer list var referList = new List <string> { null }; var sbrRequest = new SetBucketRefererRequest(_bucketName, referList); _ossClient.SetBucketReferer(sbrRequest); OssTestUtils.WaitForCacheExpire(); var referConfig = _ossClient.GetBucketReferer(_bucketName); Assert.IsNull(referConfig.RefererList.Referers); }
/// <summary> /// OSS是按使用收费的服务,为了防止用户在OSS上的数据被其他人盗链,OSS支持基于HTTP header中表头字段referer的防盗链方法 /// </summary> /// <param name="bucketName"></param> /// <param name="refererList"> </param> /// <returns></returns> /// <![CDATA[ /// //refererList.Add(" http://www.aliyun.com"); ///refererList.Add(" http://www.*.com"); ///refererList.Add(" http://www.?.aliyuncs.com"); /// ]]> public RefererConfiguration SetBucketReferer(string bucketName, List <string> refererList) { if (refererList == null || refererList.Count == 0) { return(null); } var srq = new SetBucketRefererRequest(bucketName, refererList); Client.SetBucketReferer(srq); var rc = Client.GetBucketReferer(bucketName); return(rc); }
public static void SetBucketReferer() { const string accessKeyId = "<your access key id>"; const string accessKeySecret = "<your access key secret>"; const string endpoint = "<valid host name>"; const string bucketName = "<bucket name>"; OssClient client = new OssClient(endpoint, accessKeyId, accessKeySecret); try { var refererList = new List <string>(); refererList.Add(" http://www.aliyun.com"); refererList.Add(" http://www.*.com"); refererList.Add(" http://www.?.aliyuncs.com"); var srq = new SetBucketRefererRequest(bucketName, refererList); //srq.ClearRefererList(); client.SetBucketReferer(srq); var rc = client.GetBucketReferer(bucketName); Console.WriteLine("allow?" + (rc.AllowEmptyReferer ? "yes" : "no")); if (rc.RefererList.Referers != null) { for (var i = 0; i < rc.RefererList.Referers.Length; i++) { Console.WriteLine(rc.RefererList.Referers[i]); } } else { Console.WriteLine("Empty Referer List"); } } catch (OssException ex) { Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}", ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId); } catch (Exception ex) { Console.WriteLine("Failed with error info: {0}", ex.Message); } finally { client.SetBucketReferer(new SetBucketRefererRequest(bucketName)); } }
public static void SetBucketReferer() { const string accessKeyId = "<your access key id>"; const string accessKeySecret = "<your access key secret>"; const string endpoint = "<valid host name>"; const string bucketName = "<bucket name>"; OssClient client = new OssClient(endpoint, accessKeyId, accessKeySecret); try { var refererList = new List<string>(); refererList.Add(" http://www.aliyun.com"); refererList.Add(" http://www.*.com"); refererList.Add(" http://www.?.aliyuncs.com"); var srq = new SetBucketRefererRequest(bucketName, refererList); //srq.ClearRefererList(); client.SetBucketReferer(srq); var rc = client.GetBucketReferer(bucketName); Console.WriteLine("allow?" + (rc.AllowEmptyReferer ? "yes" : "no")); if (rc.RefererList.Referers != null) { for (var i = 0; i < rc.RefererList.Referers.Length; i++) Console.WriteLine(rc.RefererList.Referers[i]); } else { Console.WriteLine("Empty Referer List"); } } catch (OssException ex) { Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}", ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId); } catch (Exception ex) { Console.WriteLine("Failed with error info: {0}", ex.Message); } finally { client.SetBucketReferer(new SetBucketRefererRequest(bucketName)); } }
//public async Task<Bucket430> UpdateAsync(UpdateBucket430Dto input) //{ // var bucket = await _bucketRepository.GetAll().FirstOrDefaultAsync(x => x.Name == input.Name); // if (bucket == null) // { // throw new Abp.UI.UserFriendlyException($"存储库{input.Name}不存在"); // } // input.MapTo(bucket); // UnitOfWorkManager.Current.SaveChanges(); // UpdateBucketSetting(bucket); // return bucket; //} public void ApplySettingToAllBucket() { var buckets = GetBuckets(); if (buckets == null || buckets.Count < 1) { return; } foreach (var bucket in buckets) { ApplySettingToBucket(bucket); } // 调用430文件系统设置 var theOne = buckets.FirstOrDefault(); var bucketCorsRequest = theOne.ToCORSRules(); var bucketRefererRequest = new SetBucketRefererRequest(theOne.Name, theOne.RefererList, theOne.AllowEmptyReferer); _fs430Manger.Update430Setting(new Setting430(bucketCorsRequest.CORSRules?.FirstOrDefault(), bucketRefererRequest)); }
protected virtual async Task CreateBucketIfNotExists(IOss ossClient, BlobProviderArgs args, IList <string> refererList = null) { if (!await BucketExistsAsync(ossClient, args)) { var bucketName = GetBucketName(args); var request = new CreateBucketRequest(bucketName) { //设置存储空间访问权限ACL。 ACL = CannedAccessControlList.PublicReadWrite, //设置数据容灾类型。 DataRedundancyType = DataRedundancyType.ZRS }; ossClient.CreateBucket(request); if (refererList != null && refererList.Count > 0) { var srq = new SetBucketRefererRequest(bucketName, refererList); ossClient.SetBucketReferer(srq); } } }
public static void SetBucketReferer(string bucketName) { try { var refererList = new List<string>(); refererList.Add(" http://www.aliyun.com"); refererList.Add(" http://www.*.com"); refererList.Add(" http://www.?.aliyuncs.com"); var srq = new SetBucketRefererRequest(bucketName, refererList); client.SetBucketReferer(srq); Console.WriteLine("Set bucket:{0} Referer succeeded ", bucketName); } catch (OssException ex) { Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}", ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId); } catch (Exception ex) { Console.WriteLine("Failed with error info: {0}", ex.Message); } }
public static void SetBucketReferer(string bucketName) { try { var refererList = new List <string>(); refererList.Add(" http://www.aliyun.com"); refererList.Add(" http://www.*.com"); refererList.Add(" http://www.?.aliyuncs.com"); var srq = new SetBucketRefererRequest(bucketName, refererList); client.SetBucketReferer(srq); Console.WriteLine("Set bucket:{0} Referer succeeded ", bucketName); } catch (OssException ex) { Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}", ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId); } catch (Exception ex) { Console.WriteLine("Failed with error info: {0}", ex.Message); } }
public void SetBucketRefersPositiveTest() { //initialize refer list var referList = new List <string> { "http://*.aliyun.com", "http://wwww.alibaba.com" }; //use construct which pass in 3 parameters var sbrRequest = new SetBucketRefererRequest(_bucketName, referList, false); _ossClient.SetBucketReferer(sbrRequest); OssTestUtils.WaitForCacheExpire(); var referConfig = _ossClient.GetBucketReferer(_bucketName); Assert.AreEqual(2, referConfig.RefererList.Referers.Length); Assert.IsFalse(referConfig.AllowEmptyReferer); referList.Add("http://www.taobao?.com"); //use construct which pass in 2 parameters, and allowEmptyRefer set to true sbrRequest = new SetBucketRefererRequest(_bucketName, referList); _ossClient.SetBucketReferer(sbrRequest); OssTestUtils.WaitForCacheExpire(); referConfig = _ossClient.GetBucketReferer(_bucketName); Assert.AreEqual(3, referConfig.RefererList.Referers.Length); //it is true this time Assert.IsTrue(referConfig.AllowEmptyReferer); //use construct which pass in 1 parameter, which means set it back to init status sbrRequest = new SetBucketRefererRequest(_bucketName); _ossClient.SetBucketReferer(sbrRequest); OssTestUtils.WaitForCacheExpire(); referConfig = _ossClient.GetBucketReferer(_bucketName); Assert.IsNull(referConfig.RefererList.Referers); Assert.IsTrue(referConfig.AllowEmptyReferer); }
public Setting430(CORSRule cORSRule, SetBucketRefererRequest refererRule) { CORSRule = cORSRule; RefererRule = refererRule; }
public static SetBucketRefererCommand Create(IServiceClient client, Uri endpoint, ExecutionContext context, string bucketName, SetBucketRefererRequest setBucketRefererRequest) { return new SetBucketRefererCommand(client, endpoint, context, bucketName, setBucketRefererRequest); }
public static SetBucketRefererCommand Create(IServiceClient client, Uri endpoint, ExecutionContext context, string bucketName, SetBucketRefererRequest setBucketRefererRequest) { return(new SetBucketRefererCommand(client, endpoint, context, bucketName, setBucketRefererRequest)); }