华为云对象存储服务中的桶,可以设置标签 ,通过标签进行管理和分类

设置新标签

public BucketTagInfo.TagSet newTagSet(){BucketTagInfo.TagSet tagSet = new BucketTagInfo.TagSet();return tagSet;}public BucketTagInfo.TagSet addTag(BucketTagInfo.TagSet tagSet , String tag , String value){tagSet.addTag(tag, value);return tagSet;}public String setBucketTag(BucketTagInfo.TagSet tagSet,String bucketName){try {BucketTagInfo bucketTagInfo = new BucketTagInfo();bucketTagInfo.setTagSet(tagSet);obsClient.setBucketTagging(bucketName, bucketTagInfo);}catch (ObsException e){return "failed";}return "success";}public String setTag(String bucketName,List<String> tagsKey,List<String> tagsValue){BucketTagInfo.TagSet tag = newTagSet();for (int i = 0;i < tagsKey.size();i++){tag.addTag(tagsKey.get(i), tagsValue.get(i));}String result = setBucketTag(tag,bucketName);return result;}

每次设置标签,都使用一个完整的map,其中有一个或多个key、value键值对
一次可以设置多个标签,但设置完成后不能再添加标签,只能重新设置

获取桶标签

    public Map<String,String> getBucketTagging(String bucketName){Map<String,String> map = new HashMap<>();try {BucketTagInfo bucketTagInfo = obsClient.getBucketTagging(bucketName);if (bucketTagInfo != null){for(BucketTagInfo.TagSet.Tag tag : bucketTagInfo.getTagSet().getTags()){System.out.println("\t" + tag.getKey() + ":" + tag.getValue());
//                    map.put("tagValue",tag.getValue());
//                    map.put("tagKey",tag.getKey());map.put(tag.getKey(),tag.getKey());}}}catch (ObsException e){return null;}return map;}

通过桶标签列举桶

public List<ObsBucket> listBucketByTag(String tagKey, String tagValue){ListBucketsRequest request = new ListBucketsRequest();request.setQueryLocation(true);List<ObsBucket> buckets = obsClient.listBuckets(request);List<ObsBucket> result = new ArrayList<>();for (ObsBucket bucket : buckets){Map<String,String> map = getBucketTagging(bucket.getBucketName());if (map != null){String value = map.get("tagValue");String key = map.get("tagKey");if (value.equals(tagValue)&&key.equals(tagKey)){result.add(bucket);}}}return result;}

根据给出的标签,返回所有带有此标签的桶名称

删除标签

public String deleteBucketTagging(String bucketName){try {obsClient.deleteBucketTagging(bucketName);}catch (ObsException e){return "failed";}return "success";}

桶日志管理

开启桶日志

/* 开启桶日志 */public String setBuckectLogging(String targetBucketName,String targetPrefix,String bucketName){BucketLoggingConfiguration config = new BucketLoggingConfiguration();
//        config.setAgency(agency);config.setTargetBucketName(targetBucketName);config.setLogfilePrefix(targetPrefix);HuaweiController hwc = new HuaweiController();hwc.setBucketAclForLog(targetBucketName);
//        hwc.closeObsClient();// 为所有用户设置对日志对象的读权限GrantAndPermission grant1 = new GrantAndPermission(GroupGrantee.ALL_USERS, Permission.PERMISSION_FULL_CONTROL);config.setTargetGrants(new GrantAndPermission[]{grant1});try{obsClient.setBucketLogging(bucketName, config);}catch (ObsException e){return "ObsException";}return "success";}

由于桶日志需要额外的桶日志投递用户组获取日志存放桶的权限,所以需要对桶给与额外的权限

/* 为所有用户设置对日志对象权限 */public String setGrantAndPermission(BucketLoggingConfiguration config,String bucketName,int permission){try{GrantAndPermission grant1 = new GrantAndPermission(GroupGrantee.ALL_USERS, Permission.PERMISSION_READ);switch (permission){case 1:{grant1 = new GrantAndPermission(GroupGrantee.ALL_USERS, Permission.PERMISSION_READ_ACP);break;}case 2:{grant1 = new GrantAndPermission(GroupGrantee.ALL_USERS, Permission.PERMISSION_WRITE);break;}case 3:{grant1 = new GrantAndPermission(GroupGrantee.ALL_USERS, Permission.PERMISSION_WRITE_ACP);break;}case 4:{grant1 = new GrantAndPermission(GroupGrantee.ALL_USERS, Permission.PERMISSION_FULL_CONTROL);break;}}config.setTargetGrants(new GrantAndPermission[]{grant1});obsClient.setBucketLogging(bucketName, config);}catch (ObsException e){return "obsException";}return "success";}

查看桶日志配置

    /* 查看桶日志配置 */public Map<String,String> getBucketLogging(String bucketName){BucketLoggingConfiguration config = obsClient.getBucketLogging(bucketName);Map<String,String> map = new HashMap<>();
//        map.put("targetBucketName",config.getTargetBucketName());
//        map.put("targetPrefix",config.getLogfilePrefix());map.put(config.getTargetBucketName(), config.getLogfilePrefix());System.out.println("\t" + config.getTargetBucketName());System.out.println("\t" + config.getLogfilePrefix());return map;}

关闭桶日志并删除日志文件

    /* 关闭桶日志 */public String shutdownBucketLogging(String bucketName){// 对桶设置空的日志配置try{Map<String,String> map = getBucketLogging(bucketName);String targetBucketName = map.get("targetBucketName");String targetPrefix = map.get("targetPrefix");System.out.println(targetBucketName);System.out.println(targetPrefix);HuaweiObjectController hoc = new HuaweiObjectController();ListObjectsRequest request = hoc.newListRequest(targetBucketName);List<ObsObject> list = hoc.simpleList(request,targetPrefix);for (ObsObject o : list){hoc.deleteObject(targetBucketName,o.getObjectKey());}obsClient.setBucketLogging(bucketName, new BucketLoggingConfiguration());}catch (ObsException e ){return "ObsException";}return "success";}

云存储服务broker系统(九)——桶标签及桶日志管理相关推荐

  1. uniCloud服务空间免费云存储图床系统源码

    简介: uniCloud服务空间免费云存储图床系统源码 uniCloud提供免费100G云存储空间,不限流量,底层是阿里云OSS,因此速度非常快. 这个源码是利用uniCloud云存储开发的一款图床源 ...

  2. Dropbox 官方中文版!最优秀实用的免费跨平台文件网络同步网盘云存储服务

    很不幸的,昨晚发现我的台式机又死机了,硬盘灯不闪烁,Num lock键也无任何反映,强行重启电脑后经过一段时间的磁盘扫描检测后,总算正常进入系统了,发现系统运行速度正常,初步判断盘符和文件均无丢失,有 ...

  3. AWS S3云存储服务

    AWS S3云存储服务 1 S3概念及基础知识 2 S3的基本操作 3 S3数据安全 4 S3数据加密以及命令行CLI 4.1 S3加密工作原理 4.1.1 server端的加密 4.1.2 clie ...

  4. 哪种云存储服务最适合你?

    早在2007年的时候,Dropbox首席执行官Drew Houston实在受不了经常弄丢USB驱动器,个人和小公司云存储这个概念还是很前卫的想法.而如今,每个人似乎都在提供便宜或免费的云存储服务. 这 ...

  5. 380免费云存储_从四个方面分析:云存储服务的特点、影响

    云存储就是将储存资源放到云上供人存取的一种新兴方案,使用者可以在任何时间.任何地方,透过任何可连网的装置连接到云上方便地存取数据.那么,云存储服务有什么特点,会给我们带来一些什么样的影响呢? 云存储是 ...

  6. 全球最佳15个免费云存储服务推荐

    据国外媒体报道,对一般用户来说,除非需要1TB以上超大容量存储空间,很少人愿意付费获得一个云存储.其实有很多云存储厂商,都会提供一些小容量的免费云存储给一般用户,对只需要存储一些照片.文档的用户来说, ...

  7. 盘点Linux下的开源云平台云存储服务

    15个您可能不知道的开源云平台 桉树云服务环境 Eucalyptus 开源协议及语言 GPL Java C/C++ 官方网站 http://www.eucalyptus.com/participate ...

  8. 湖州云计算机,湖州云存储服务_菲尔云计算

    湖州云存储服务,菲尔云计算,菲尔集团在硬件开发.运营维护等领域为客户提供有竞争力.安全.信赖的产品解决方案与服务,与生态伙伴开放合作,持续为客户创造价值. 湖州云存储服务, 云存储的模式:目前市面上的 ...

  9. 选择云存储服务需要注意哪些事项?

    如今云存储服务提供商有很多,并且这一些厂商大多数都提供了免费的存储空间,可是依然是有一些事项是需要我们注意的.那么,选择云存储服务的时候需要注意哪些事项呢? 下面就跟着小杜的脚步,一起来看看选择云存储 ...

最新文章

  1. 一台服务器上起2个mysql服务
  2. 十张图了解2021年中国数据中心产业链投资现状和投资并购发展趋势
  3. 深度解读!阿里统一应用管理架构升级的教训与实践
  4. CommunityServer 2.0 RTM时间是:2006-02-17 --Scott Watermasysk今天中午
  5. 1xx、101、100 状态详解
  6. UE4 代理 BindRaw和BindUObject
  7. 2022大厂面试必问要点总结
  8. API:互联网是如何在幕后工作的?
  9. python判断邮箱格式是否正确_python:校验邮箱格式
  10. 从古至今的计算机设备,计算器从古至今的发展形成
  11. java flip_GitHub - bowen903/ViewFlipAnimator: 一种超简单纯Java实现的卡片翻转效果
  12. 优秀蓝牙耳机推荐,热销不错的四款蓝牙耳机推荐
  13. 人工智能的应用实例——Smartbi大数据AI机器人
  14. 【Linux】工具使用
  15. 解决英伟达CUDA和cuDNN下载过慢的问题
  16. Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] ...
  17. win10安装mysql5.7缺少MSVCP120.dll
  18. 揽一帘心事,掬一捧清泉
  19. 9月发布下代iPhone?8月7寸iPad上市?
  20. 佳能c3320如何u盘打印_佳能c3320驱动|佳能ir adv c3320打印/扫描驱动下载 v21.75 官方版 - 比克尔下载...

热门文章

  1. 人人开源代码快速生成品牌管理的前后端基本代码
  2. android局域网通信方案,Android基于TCP的局域网聊天通信
  3. python 局域网通信 socket server client
  4. ios越狱设备在线安装ipa方法
  5. Java程序员最喜欢的五大神器
  6. 抖~~音 无水印video 下载
  7. Mapreduce程序 统计文件中每个单词出现次数
  8. 四川峰创教育咨询有限公司:目前跨境电商适合做的类目有哪些?
  9. 大学计算机基础教育...,对大学计算机基础教育几点认识.docx
  10. 在XP中用IE浏览器进行远程控制(转)