Пример #1
0
        static void SetBucketACL()
        {
            try
            {
                Owner owner = new Owner
                {
                    DisplayName = "ownername",
                    Id          = "ownerid",
                };


                Grant grant = new Grant
                {
                    Grantee = new CanonicalGrantee()
                    {
                        DisplayName = "granteename",
                        Id          = "granteeid",
                    },

                    Permission = PermissionEnum.FullControl,
                };

                List <Grant> Grants = new List <Grant>();
                Grants.Add(grant);
                AccessControlList accessControlList = new AccessControlList
                {
                    Owner  = owner,
                    Grants = Grants,
                };

                SetBucketAclRequest request = new SetBucketAclRequest()
                {
                    BucketName        = bucketName,
                    AccessControlList = accessControlList
                };

                SetBucketAclResponse response = client.SetBucketAcl(request);

                Console.WriteLine("SetBucketACL response: {0}", response.StatusCode);
            }
            catch (ObsException ex)
            {
                Console.WriteLine("Exception errorcode: {0}, when set bucket acl.", ex.ErrorCode);
                Console.WriteLine("Exception errormessage: {0}", ex.ErrorMessage);
            }
        }
Пример #2
0
        static void SetBucketLogging()
        {
            try
            {
                AccessControlList acl = new AccessControlList();
                acl.Owner    = new Owner();
                acl.Owner.Id = "domainId";
                Grant item = new Grant();
                item.Permission = PermissionEnum.FullControl;
                GroupGrantee group = new GroupGrantee();
                group.GroupGranteeType = GroupGranteeEnum.LogDelivery;
                item.Grantee           = group;
                acl.Grants.Add(item);

                SetBucketAclRequest setAclRequest = new SetBucketAclRequest
                {
                    BucketName        = "targetbucketname",
                    AccessControlList = acl,
                };


                SetBucketAclResponse setAclResponse = client.SetBucketAcl(setAclRequest);
                Console.WriteLine("Set bucket target acl response: {0}", setAclResponse.StatusCode);

                LoggingConfiguration loggingConfig = new LoggingConfiguration();
                loggingConfig.TargetBucketName = "targetbucketname";
                loggingConfig.TargetPrefix     = "targetPrefix";

                SetBucketLoggingRequest request = new SetBucketLoggingRequest()
                {
                    BucketName    = bucketName,
                    Configuration = loggingConfig
                };

                SetBucketLoggingResponse response = client.SetBucketLogging(request);

                Console.WriteLine("Set bucket logging status: {0}", response.StatusCode);
            }
            catch (ObsException ex)
            {
                Console.WriteLine("Exception errorcode: {0}, when set bucket logging.", ex.ErrorCode);
                Console.WriteLine("Exception errormessage: {0}", ex.ErrorMessage);
            }
        }
Пример #3
0
        /// <summary>
        /// 设置桶权限
        /// </summary>
        /// <param name="bucketName"></param>
        /// <param name="mode"></param>
        /// <returns></returns>
        public Task <bool> SetBucketAclAsync(string bucketName, AccessMode mode)
        {
            if (string.IsNullOrEmpty(bucketName))
            {
                throw new ArgumentNullException(nameof(bucketName));
            }
            var canned = mode switch
            {
                AccessMode.Default => CannedAclEnum.Private,
                AccessMode.Private => CannedAclEnum.Private,
                AccessMode.PublicRead => CannedAclEnum.PublicRead,
                AccessMode.PublicReadWrite => CannedAclEnum.PublicReadWrite,
                _ => CannedAclEnum.Private,
            };
            SetBucketAclRequest request = new SetBucketAclRequest
            {
                BucketName = bucketName,
                CannedAcl  = canned
            };
            SetBucketAclResponse response = _client.SetBucketAcl(request);

            return(Task.FromResult(response.StatusCode == HttpStatusCode.OK));
        }