全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
对象存储 OSS

管理文件访问权限

更新时间:2018-07-19 11:00:25

文件的访问权限(ACL)有以下四种:

访问权限 描述
继承Bucket 文件遵循存储空间的访问权限。
私有 文件是私有资源。文件的拥有者和授权用户有该文件的读写权限,其他用户没有权限操作该文件。
公共读私有写 文件是公共读资源。文件拥有者和授权用户有该文件的读写权限,其他用户只有文件的读权限。
公共读写 文件是公共读写资源。所有用户都有该文件的读写权限。

文件的访问权限优先级高于存储空间的访问权限。例如存储空间的访问权限是私有读写,而文件的访问权限是公共读写,则所有用户都有该文件的读写权限。如果某个文件没有设置过访问权限,则遵循存储空间的访问权限。

设置文件访问权限

您可以通过ossClient.setObjectAcl设置文件的访问权限。

访问权限 访问权限值
继承Bucket CannedAccessControlList.Default
私有 CannedAccessControlList.Private
公共读私有写 CannedAccessControlList.PublicRead
公共读写 CannedAccessControlList.PublicReadWrite

以下代码用于设置指定文件的访问权限:

  1. // Endpoint以杭州为例,其它Region请按实际情况填写。
  2. String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. // 创建OSSClient实例。
  7. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  8. // 设置文件的访问权限。
  9. ossClient.setObjectAcl("<yourBucketName>", "<yourObjectName>", CannedAccessControlList.PublicRead);
  10. // 关闭OSSClient。
  11. ossClient.shutdown();

获取文件访问权限

以下代码用于获取指定文件的访问权限:

  1. // Endpoint以杭州为例,其它Region请按实际情况填写。
  2. String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. // 创建OSSClient实例。
  7. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  8. // 获取文件的访问权限。
  9. ObjectAcl objectAcl = ossClient.getObjectAcl("<yourBucketName>", "<yourObjectName>");
  10. System.out.println(objectAcl.getPermission().toString());
  11. // 关闭OSSClient。
  12. ossClient.shutdown();
本文导读目录