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-阿里云