892
微信
管理Bucket__Java-SDK_SDK 參考_對象存儲 OSS-阿裏雲
創建Bucket
您可以使用OSSClient.createBucket創建Bucket。如下代碼展示如何新建一個Bucket:
// endpoint以杭州為例,其它region請按實際情況填寫
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// accessKey請登錄https://ak-console.aliyun.com/#/查看
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
// 創建OSSClient實例
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 創建bucket
String bucketName = "<your-oss-bucket-name>";
ossClient.createBucket(bucketName);
// 關閉client
ossClient.shutdown();
提示:
- Bucket的命名規範,參見基本概念中的
命名規範
。- Bucket的名字是全局唯一的,所以您需要保證Bucket名稱不與別人重複。
上麵代碼創建的bucket,權限是私有讀寫。創建bucket時可以指定bucket權限,如下的示例代碼:
CreateBucketRequest createBucketRequest= new CreateBucketRequest(bucketName);
// 設置bucket權限
createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
ossClient.createBucket(createBucketRequest);
列舉Bucket
您可以使用OSSClient.listBuckets列舉指定用戶下的Bucket。
簡單列舉
以下代碼展示如何采用簡單方式列舉指定用戶的Bucket列表:
// endpoint以杭州為例,其它region請按實際情況填寫
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// accessKey請登錄https://ak-console.aliyun.com/#/查看
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
// 創建OSSClient實例
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 列舉bucket
List<Bucket> buckets = ossClient.listBuckets();
for (Bucket bucket : buckets) {
System.out.println(" - " + bucket.getName());
}
// 關閉client
ossClient.shutdown();
上麵的代碼最多隻能返回100個bucket,已經能滿足用戶的需求。列舉bucket時,通過指定prefix、marker、maxkeys參數,可以過濾bucket列表,實現靈活的查詢功能。
參數 | 作用 |
---|---|
prefix | 限定返回的bucket name必須以prefix作為前綴,可以不設定,不設定時不過濾前綴信息 |
marker | 設定結果從marker之後按字母排序的第一個開始返回,可以不設定,不設定時從頭開始返回 |
max keys | 限定此次返回bucket的最大數,如果不設定,默認為100,max-keys取值不能大於1000 |
指定前綴列舉
ListBucketsRequest listBucketsRequest = new ListBucketsRequest();
listBucketsRequest.setPrefix("<yourBucketPrefix>");
for (Bucket bucket : ossClient.listBuckets()) {
System.out.println(" - " + bucket.getName());
}
指定max keys列舉
ListBucketsRequest listBucketsRequest = new ListBucketsRequest();
listBucketsRequest.setMaxKeys(500);
for (Bucket bucket : ossClient.listBuckets()) {
System.out.println(" - " + bucket.getName());
}
刪除Bucket
您可以使用OSSClient.deleteBucket刪除Bucket。以下代碼展示如何刪除一個Bucket:
// endpoint以杭州為例,其它region請按實際情況填寫
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// accessKey請登錄https://ak-console.aliyun.com/#/查看
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
// 創建OSSClient實例
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 刪除bucket
ossClient.deleteBucket("<bucketName>");
// 關閉client
ossClient.shutdown();
提示:
- 如果存儲空間不為空(存儲空間中有文件或者分片上傳碎片),則存儲空間無法刪除;
- 必須先刪除存儲空間中的所有文件後,存儲空間才能成功刪除。
判斷Bucket是否存在
您可以使用OSSClient.doesBucketExist接口判斷該Bucket是否已存在。 以下代碼展示如何判斷指定Bucket是否存在:
// endpoint以杭州為例,其它region請按實際情況填寫
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// accessKey請登錄https://ak-console.aliyun.com/#/查看
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
// 創建OSSClient實例
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
boolean exists = ossClient.doesBucketExist("<bucketName>");
// 關閉client
ossClient.shutdown();
設置Bucket ACL
Bucket的ACL包含三類:Private(私有讀寫), PublicRead(公共讀私有寫), PublicReadWrite(公共讀寫)。您可以通過OSSClient.setBucketAcl設置bucket的權限。
權限 | Java SDK對應值 |
---|---|
私有讀寫 | CannedAccessControlList.Private |
公共讀私有寫 | CannedAccessControlList.PublicRead |
公共讀寫 | CannedAccessControlList.PublicReadWrite |
以下代碼展示如何設置Bucket的權限:
// endpoint以杭州為例,其它region請按實際情況填寫
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// accessKey請登錄https://ak-console.aliyun.com/#/查看
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
// 創建OSSClient實例
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 設置bucket權限
ossClient.setBucketAcl("<bucketName>", CannedAccessControlList.Private);
// 關閉client
ossClient.shutdown();
獲取Bucket ACL
您可以通過OSSClient.getBucketAcl獲取bucket的權限。以下代碼展示如何獲取Bucket的ACL:
// endpoint以杭州為例,其它region請按實際情況填寫
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// accessKey請登錄https://ak-console.aliyun.com/#/查看
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
// 創建OSSClient實例
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
AccessControlList acl = ossClient.getBucketAcl("<bucketName>");
// bucket權限
System.out.println(acl.toString());
// 關閉client
ossClient.shutdown();
獲取Bucket Location
Bucket Location即Bucket Region,詳細請參看基本概念中的Region(區域)
。
您可以通過OSSClient.getBucketLocation獲取bucket的權限。以下代碼展示如何獲取Bucket的Location:
// endpoint以杭州為例,其它region請按實際情況填寫
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// accessKey請登錄https://ak-console.aliyun.com/#/查看
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
// 創建OSSClient實例
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
String location = ossClient.getBucketLocation("<bucketName>");
System.out.println(location);
// 關閉client
ossClient.shutdown();
獲取Bucket Info
Bucket的Info包括Location、CreationDate、Owner及權限等信息。 以下代碼展示如何獲取Bucket的Info:
// endpoint以杭州為例,其它region請按實際情況填寫
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// accessKey請登錄https://ak-console.aliyun.com/#/查看
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
// 創建OSSClient實例
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
BucketInfo info = ossClient.getBucketInfo("<bucketName>");
// Location
info.getBucket().getLocation();
// 創建日期
info.getBucket().getCreationDate();
// owner
info.getBucket().getOwner();
// 權限
info.getGrants();
// 關閉client
ossClient.shutdown();
最後更新:2016-11-23 16:04:10
上一篇:
STS常見問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
下一篇:
下載文件__Java-SDK_SDK 參考_對象存儲 OSS-阿裏雲
升級為專業版__使用手冊_移動安全-阿裏雲
基於 Jenkins 的持續交付__DevOps_用戶指南_容器服務-阿裏雲
健康檢查異常的排查思路__最佳實踐_負載均衡-阿裏雲
登錄 RDS 管理控製台__快速入門(MySQL)_雲數據庫 RDS 版-阿裏雲
下載 Demo 工程__服務開發_開發者指南_企業級分布式應用服務 EDAS-阿裏雲
短信字數最多能發多少個字? 建議400個字以內的短信。__常見問題_短信服務-阿裏雲
智能客服__阿裏雲ET介紹-阿裏雲
查詢表信息__管理表_數據庫開發_用戶指南(RDBMS)_數據管理-阿裏雲
驗證碼服務Android/iOS API__驗證碼服務API_API手冊_數據風控-阿裏雲
查詢伸縮活動__API參考_彈性伸縮-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲