全部產品
Search
文件中心

Object Storage Service:管理檔案存取權限

更新時間:Aug 30, 2018

檔案的存取權限(ACL)有以下四種:

存取權限 描述 存取權限值
繼承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();