【OSS】 Bucket相關操作
阿新 • • 發佈:2019-01-02
package com.ls; import java.util.ArrayList; import java.util.List; import com.aliyun.oss.OSSClient; import com.aliyun.oss.model.Bucket; import com.aliyun.oss.model.BucketList; import com.aliyun.oss.model.CannedAccessControlList; import com.aliyun.oss.model.CreateBucketRequest; import com.aliyun.oss.model.ListBucketsRequest; /** Bucket相關操作,建立,修改,刪除等 * @author Administrator * */ public class ExampleForBucket { private static final String ACCESS_ID = "****************"; private static final String ACCESS_KEY = "******************************"; private static final String OSS_ENDPOINT = "http://oss.aliyuncs.com/"; public static void createBucket(OSSClient client) { /* Bucket訪問許可權,三種:私有、公共讀、公共讀寫 */ CannedAccessControlList acl = CannedAccessControlList.PublicReadWrite; /* 直接通過Bucket名稱建立 */ String bucketName = "lonshinesaas";// Bucket名稱 client.createBucket(bucketName);// 建立Bucket,ACL預設為私有 client.setBucketAcl(bucketName, acl);// 設定指定Bucket的讀寫許可權Access Control // List(ACL)。 /* 通過一個Bucket物件來建立 */ CreateBucketRequest bucketObj = new CreateBucketRequest(null);// 建構函式入參為Bucket名稱,可以為空 bucketObj.setBucketName("hzsaastest");// 設定bucketObj名稱 bucketObj.setCannedACL(CannedAccessControlList.PublicRead);// 設定bucketObj訪問許可權acl client.createBucket(bucketObj);// 建立Bucket } public static void deleteBucket(OSSClient client, String bucketName) { /*判斷給定Bucket是否存在。*/ boolean isBucket = client.doesBucketExist(bucketName); if(isBucket){ /* 通過Bucket名稱刪除 */ client.deleteBucket(bucketName); }else{ System.out.println("Bucket:"+bucketName+"不存在,無法刪除!"); } /* * 說明: * 1.Bucket不存在無法刪除:The specified bucket does not exist. * 2.Bucket不為空無法刪除:The bucket you tried to delete is not empty. */ } public static void getBucketList(OSSClient client) { /* 返回請求者擁有的所有Bucket的列表。 */ List<Bucket> list1 = new ArrayList<Bucket>(); list1 = client.listBuckets(); for (Bucket a : list1) { System.out.println("list1 info:" + a.toString()); } System.out.println("----------------------------------------------------------------"); /* 按要求返回請求者的Bucket列表。 */ BucketList list2 = new BucketList(); ListBucketsRequest condition = new ListBucketsRequest(); condition.setPrefix("hz");// 限定返回的bucket name必須以prefix作為字首。不設定則返回全部 condition.setMaxKeys(5);// 此次返回bucket的最大數,如果不設定,預設為100。 condition.setMarker("a");// 使用者設定結果從marker之後按字母排序的第一個開始返回。 list2 = client.listBuckets(condition); for (Bucket a : list2.getBucketList()) { System.out.println("list2 info:" + a.toString()); } System.out.println("----------------------------------------------------------------"); /* 按要求返回請求者的Bucket列表。(方法2) */ BucketList list3 = new BucketList(); /* * 引數: prefix - 限定返回的bucket的名字必須以prefix作為字首,可以為null(表示不設定字首) * marker - 設定結果從marker之後按字母排序的第一個開始返回,可以為null(表示沒有marker的點,從頭開始返回) * maxKeys- 限定此次返回bucket的最大數,取值不能大於1000,預設為100,可以為null(表示預設返回最多100個) */ list3 = client.listBuckets("s", null, 1); for (Bucket a : list3.getBucketList()) { System.out.println("list3 info:" + a.toString()); } } public static void main(String[] args) { // 初始化OSS客戶端 OSSClient client = new OSSClient(OSS_ENDPOINT, ACCESS_ID, ACCESS_KEY); createBucket(client); deleteBucket(client,"saas01"); deleteBucket(client,"saas02"); deleteBucket(client,"saas03"); getBucketList(client); System.out.println("OK"); //關閉 client.shutdown(); } }