檔案的存取權限(ACL)有以下四種:
存取權限 | 描述 | 存取權限值 |
---|---|---|
繼承Bucket | 檔案遵循儲存空間的存取權限。 | CannedAccessControlList.Default |
私有 | 檔案的擁有者和授權使用者有該檔案的讀寫權限,其他使用者沒有許可權操作該檔案。 | CannedAccessControlList.Private |
公共讀 | 檔案的擁有者和授權使用者有該檔案的讀寫權限,其他使用者只有檔案的讀許可權。請謹慎使用該許可權。 | CannedAccessControlList.PublicRead |
公共讀寫 | 所有使用者都有該檔案的讀寫權限。請謹慎使用該許可權。 | CannedAccessControlList.PublicReadWrite |
檔案的存取權限優先順序高於儲存空間的存取權限。例如儲存空間的存取權限是私有,而檔案的存取權限是公共讀寫,則所有使用者都有該檔案的讀寫權限。如果某個檔案沒有設定過存取權限,則遵循儲存空間的存取權限。
設定檔案存取權限
以下代碼用於設定指定檔案的存取權限:
// Endpoint以杭州為例,其它Region請按實際情況填寫。
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 阿里雲主帳號AccessKey擁有所有API的存取權限,風險很高。強烈建議您建立並使用RAM帳號進行API訪問或日常運維,請登入 https://ram.console.aliyun.com 建立RAM帳號。
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
// 建立OSSClient執行個體。
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 設定檔案的存取權限為公共讀。
ossClient.setObjectAcl("<yourBucketName>", "<yourObjectName>", CannedAccessControlList.PublicRead);
// 關閉OSSClient。
ossClient.shutdown();
獲取檔案存取權限
以下代碼用於獲取指定檔案的存取權限:
// Endpoint以杭州為例,其它Region請按實際情況填寫。
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 阿里雲主帳號AccessKey擁有所有API的存取權限,風險很高。強烈建議您建立並使用RAM帳號進行API訪問或日常運維,請登入 https://ram.console.aliyun.com 建立RAM帳號。
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
// 建立OSSClient執行個體。
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 獲取檔案的存取權限。
ObjectAcl objectAcl = ossClient.getObjectAcl("<yourBucketName>", "<yourObjectName>");
System.out.println(objectAcl.getPermission().toString());
// 關閉OSSClient。
ossClient.shutdown();