云存储服务broker系统(三)——基本桶操作1

基本的桶操作

华为云obs服务提供的桶基本操作如下
在这里插入图片描述
上篇文章中已经创建好了我们需要的桶,现在对桶进行管理和操作

  /* 列举桶 */
    public static List<ObsBucket> listBucket()
    {
        System.out.println("start listing all bucket");
        ListBucketsRequest request = new ListBucketsRequest();
        request.setQueryLocation(true);
        List<ObsBucket> buckets = obsClient.listBuckets(request);
        for (ObsBucket bucket : buckets) {
            System.out.println("Bucket Name:" + bucket.getBucketName());
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            System.out.println("Create Date:" + bucket.getCreationDate());
            System.out.println("Location:" + bucket.getLocation());
            System.out.println();
        }
        return buckets;
    }

    /* 删除桶 */
    public int removeBucket(String bucketName) throws IOException
    {
        boolean exist = existBucket(bucketName);
        if (exist) {
            obsClient.deleteBucket(bucketName);
            System.out.println("delete bucket : " + bucketName + "success");
            obsClient.close();
            return 1;
        } else {
            System.out.println("Not exist:" + bucketName);
            return 0;
        }

    }

    /* 判断桶是否存在 */
    public boolean existBucket(String bucketName)
    {
        boolean exist = obsClient.headBucket(bucketName);
        return exist;
    }

    /* 获取桶元数据 */
    public BucketMetadataInfoResult getresult(String bucketName)
    {
        BucketMetadataInfoRequest request = new BucketMetadataInfoRequest(bucketName);
        request.setOrigin("http://www.a.com");
        BucketMetadataInfoResult result = obsClient.getBucketMetadata(request);
        System.out.println("\t:" + result.getDefaultStorageClass());
        System.out.println("\t:" + result.getAllowOrigin());
        System.out.println("\t:" + result.getMaxAge());
        System.out.println("\t:" + result.getAllowHeaders());
        System.out.println("\t:" + result.getAllowMethods());
        System.out.println("\t:" + result.getExposeHeaders());
        return result;
    }

    /* 为桶设置预定义访问策略 */
    public void setBucketAcl(String bucketName,int rwPolicy)
    {
        switch (rwPolicy) {
            case 0: {
                //私有读写
                obsClient.setBucketAcl(bucketName, AccessControlList.REST_CANNED_PRIVATE);
            }
            case 1: {
                //公共读私有写
                obsClient.setBucketAcl(bucketName, AccessControlList.REST_CANNED_PUBLIC_READ);
            }
            case 2: {
                //桶公共读,桶内对象公共读
                obsClient.setBucketAcl(bucketName, AccessControlList.REST_CANNED_PUBLIC_READ_DELIVERED);
            }
            case 3: {
                //公共读写
                obsClient.setBucketAcl(bucketName, AccessControlList.REST_CANNED_PUBLIC_READ_WRITE);
            }
            case 4: {
                //桶公共读写,桶内对象公共读写
                obsClient.setBucketAcl(bucketName, AccessControlList.REST_CANNED_PUBLIC_READ_WRITE_DELIVERED);
            }
        }
    }

    /* 获取桶访问权限 */
    public AccessControlList getBucketAcl(String bucketName){
        AccessControlList acl = obsClient.getBucketAcl(bucketName);
        return acl;
    }

删除桶操作需要提供桶的名称,在后台对桶的所有者权限判断后,可以将桶删除

列举桶操作会将本账户下的全部桶信息提取出来,通过list输出
调用bucket.getName() bucket.getCreationDate() 等方法获取每个桶的名称、创建时间、配额大小、区域位置等信息

通过BucketMetadataInfoRequest请求,可以获得桶的元数据信息,包括DefaultStorageClass、AllowOriginMaxAge、AllowHeader、AllowMethods、ExposeHeaders六项参数

setbucketacl和getbucketacl设置和获取桶的访问控制权限策略

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值