桶相关接口 请求参数 PutACL可设置的参数如下: 参数 类型 说明 是否必要 CannedACL S3CannedACL 配置预定义的标准ACL信息 否 AccessControlList S3AccessControlList 配置自定义的ACL信息 否 BucketName string 桶的名称 是 S3CannedACL包含了一组预定义的访问控制权限,可以应用于桶的访问权限如下: 权限 说明 NoACL 默认访问权限,桶的所有者拥有FULLCONTROL权限,其他用户没有访问权限 Private 桶的所有者拥有FULLCONTROL权限,其他用户没有访问权限 PublicRead 桶的所有者拥有FULLCONTROL权限,其他用户拥有READ权限 PublicReadWrite 桶的所有者拥有FULLCONTROL权限,其他用户拥有READ和WRITE权限 获取桶访问权限 功能说明 GetACL操作可以获取桶的access control list(ACL)信息。桶的ACL可以在创建的时候设置并且通过API查看,用户需要具有READACP(读取桶ACL信息)权限才可以查询桶的ACL信息。 代码示例 plaintext using System; using System.Threading.Tasks; using Amazon.Runtime; using Amazon.S3; using Amazon.S3.Model; namespace DotNetSDK.BucketOperation { public class GetBucketACLExample { public static async Task GetBucketACL() { var accessKey " "; var secretKey " "; var endpoint " "; var bucketName " "; try { var credentials new BasicAWSCredentials(accessKey, secretKey); var conf new AmazonS3Config { ServiceURL endpoint }; var s3Client new AmazonS3Client(credentials, conf); var getAclRequest new GetACLRequest() { BucketName bucketName }; var result await s3Client.GetACLAsync(getAclRequest); if (result.HttpStatusCode ! System.Net.HttpStatusCode.OK) { Console.WriteLine("fail to get ACL of bucket {0}, HttpStatusCode:{1}, ErrorCode:{2}.", bucketName, (int) result.HttpStatusCode, result.HttpStatusCode); return; } foreach (var grant in result.AccessControlList.Grants) { Console.WriteLine("Type:{0}, CanonicalUser:{1}, DisplayName:{2}, EmailAddress:{3}, URI:{4}, Permission:{5}", grant.Grantee.Type, grant.Grantee.CanonicalUser, grant.Grantee.DisplayName, grant.Grantee.EmailAddress, grant.Grantee.URI, grant.Permission.Value); } Console.WriteLine("OwnerId:{0}, OwnerDisplayName:{1}.", result.AccessControlList.Owner.Id, result.AccessControlList.Owner.DisplayName); } catch (Exception e) { Console.WriteLine(e.Message); } } } }