您的位置:首页 > 其它

【OSS】 Bucket相关操作

2015-08-09 14:36 288 查看
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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: