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); } }
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); } }
/// <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)); }