如果要用java来操作oss,首先需要下载,sdk其中的包放在java项目的路径中
您可以使用OSSClient.createBucket创建Bucket。如下代码展示如何新建一个Bucket:
// endpoint以杭州为例,其它region请按实际情况填写
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.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,权限是私有读写,存储类型是标准类型standrd.创建bucks时可以指定Bucket权限和存储类型
CreateBucketRequest createBucketRequest= new CreateBucketRequest(bucketName);
// 设置bucket权限为公共读,默认是私有读写
createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
// 设置bucket存储类型为低频访问类型,默认是标准类型
createBucketRequest.setStorageClass(StorageClass.IA);
ossClient.createBucket(createBucketRequest);
删除Bucket
您可以使用OSSClient.deleteBucket删除Bucket。以下代码展示如何删除一个Bucket:
// endpoint以杭州为例,其它region请按实际情况填写
String endpoint = "http://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 = "http://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 = "http://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 = "http://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 = "http://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 = "http://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();