设置对象访问权限

对象默认的权限是拥有者私有权限,只能由拥有者进行访问;系统提供公共读和公共读写等权限供用户选择。用户可以在上传的时候设置对象的访问权限,也可以通过putObjectAcl接口修改对象的访问权限。

接口定义:

- (void)putObjectAcl:(AWSS3PutObjectAclRequest *)request 
    completionHandler:(void (^ _Nullable)(AWSS3PutObjectAclOutput * _Nullable response, NSError * _Nullable error))completionHandler;

参数:

参数名 类型 说明
bucket NSString bucket名
key NSString 将要上传的对象的文件名
ACL AWSS3ObjectCannedACL 文件控制权限,如AWSS3ObjectCannedACLPublicRead

代码示例:

- (void) putObjectAcl:(NSString*) bucketName key:(NSString*)keyName {
    AWSS3PutObjectAclRequest *request = [[AWSS3PutObjectAclRequest alloc] init];
    request.bucket = bucketName;
    request.key = keyName;
    request.ACL = AWSS3ObjectCannedACLPublicRead;
    [self.s3 putObjectAcl:request completionHandler:^(AWSS3PutObjectAclOutput * _Nullable response, NSError * _Nullable error) {
        if (error != nil) {
            NSLog(@"error: %@", error);
            return;
        }
        NSLog(@"success");
    }];
}