Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        private SetBucketRefererCommand(IServiceClient client, Uri endpoint, ExecutionContext context,
                                        string bucketName, SetBucketRefererRequest setBucketRefererRequest)
            : base(client, endpoint, context)
        {
            OssUtils.CheckBucketName(bucketName);

            _bucketName = bucketName;
            _setBucketRefererRequest = setBucketRefererRequest;
        }
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 8
0
        /// <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));
            }
        }
Ejemplo n.º 11
0
        //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));
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 16
0
 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);
 }
Ejemplo n.º 18
0
 public static SetBucketRefererCommand Create(IServiceClient client, Uri endpoint,
                                              ExecutionContext context,
                                              string bucketName, SetBucketRefererRequest setBucketRefererRequest)
 {
     return(new SetBucketRefererCommand(client, endpoint, context, bucketName, setBucketRefererRequest));
 }