1背景介绍

OBS桶策略可以给特定用户设置特定的权限。下面代码展示通过JAVA SDK给用户桶设置高级桶策略。

2代码展示

需要先下载OBS最新的JAVA SDK,参考官网链接:https://developer.huaweicloud.com/sdk?OBS,并在自己的项目中导入SDK中的JAR包。

前提条件:已创建OBS桶,例如my-bucket123

设置的桶策略为:给用户userB给予桶的所有权限和桶内所有对象的读权限

桶策略格式如下,其中domain和user请根据实际账号ID和用户ID进行配置:{"Statement": [{"Sid": "Stmt1375240018062","Action": ["*"],"Effect": "Allow","Resource": "my-bucket123","Principal": {"ID": ["domain/c41**************************8cf:user/053**************************2c4 "]}},{"Sid": "Stmt1375240018063","Action": ["Get*"],"Effect": "Allow","Resource": "my-bucket123/*","Principal": {"ID": ["domain/c41**************************8cf:user/053**************************2c4 "]}}]}

Demo代码如下:packagesamples_java;importcom.obs.services.ObsClient;importcom.obs.services.ObsConfiguration;importcom.obs.services.exception.ObsException;importjava.io.IOException;public classBucketTestSample {private static finalStringendPoint="XXX";private static finalStringak="XXX";private static finalStringsk="XXX";private staticObsClientobsClient;private staticStringbucketName="my-bucket123";public static voidmain(String[] args)throwsIOException {

ObsConfiguration config =newObsConfiguration();

config.setSocketTimeout(30000);

config.setConnectionTimeout(10000);

config.setEndPoint(endPoint);try{obsClient=newObsClient(ak,sk, config);

String  Policy ="{\"Statement\":[{\"Sid\":\"Stmt1375240018062\",\"Action\":[\"*\"],\"Effect\":\"Allow\",\"Resource\":\"my-bucket123\",\"Principal\":{\"ID\":[\"domain/c41**************************8cf:user/053**************************2c4\"]}},{\"Sid\":\"Stmt1375240018063\",\"Action\":[\"Get*\"],\"Effect\":\"Allow\",\"Resource\":\"my-bucket123/*\",\"Principal\":{\"ID\":[\"domain/c41**************************8cf:user/053**************************2c4\"]}}]}";obsClient.setBucketPolicy(bucketName,Policy);

}catch(ObsException e) {

System.out.println("Response Code: "+ e.getResponseCode());

System.out.println("Error Message: "+ e.getErrorMessage());

System.out.println("Error Code:       "+ e.getErrorCode());

System.out.println("Request ID:      "+ e.getErrorRequestId());

System.out.println("Host ID:           "+ e.getErrorHostId());

}finally{if(obsClient!=null) {try{obsClient.close();

}catch(IOException e) {

System.out.println(e);

}

}

}

}

}

3效果展示

设置后的桶策略如下:

userB在桶内上传文件失败(没有权限),下载文件成功

4附录

java调用obs直播_OBS JAVA SDK Demo:设置桶策略相关推荐

  1. java调用exe_要精通Java,先研究它的执行原理

    对于任何一门语言,要想达到精通的水平,研究它的执行原理(或者叫底层机制)不失为一种良好的方式. 在本篇文章中,将重点研究java源代码的执行原理,即从程序员编写JAVA源代码,到最终形成产品,在整个过 ...

  2. java调用wcf_详解JAVA调用WCF服务的示例代码

    这一篇将要解决java中调用WCF的问题,使用的依旧是上一篇中托管在IIS中的WCF服务,本来我是打算用axis来写这篇文章的,可就在我开始之前,无意中发现了在java包中自带的wsimport工具 ...

  3. android java 调用js,Android中Java和JavaScript交互实例

    Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本.本文将介绍如何实现Java代码和Javascript代码的相互调用. 如 ...

  4. java调用exe_Windows系统中Java调用cmd命令及执行exe程序的方法

    Java调用cmd命令,并输出显示信息: package com.anxin.cmd.test; import java.io.BufferedReader; import java.io.Input ...

  5. java调用linux设备,使用Java调用Linux系统命令

    有时候,咱们在使用Java作一些操做时,可能性能上并不能达到咱们满意的效果,就拿最近工做中的遇到的一个场景来讲,须要对大量的小文件进行合并成一个大文件.java 最开始的想法是使用Java作文件操做, ...

  6. gdb java,调用gdb来调试java程序

    错误没有这样的文件或目录,gdb 如果错误消息来自emacs,则表示未安装 gdb . 要解决此问题,请安装 gdb . 请注意 gdb 不是emacs的一部分,它是一个单独的程序 . 如果你得到一个 ...

  7. Java调用动态库 缺点,Java调用动态库所需要关心的有关问题

    Java调用动态库所需要关心的问题 标签: 无标签 利用JNative实现Java调用动态库(转) http://cctv663.blog.163.com/blog/static/1011921220 ...

  8. java 调用c 的dll,java如何调用C的dll

    java怎么调用C的dll 我做了1个java调用c++的dll 想做一个java调用C的dll就不知道怎么做了 在xx.c里 写 JNIEXPORT jint JNICALL Java_testdl ...

  9. java调用批处理文件_有关java调用批处理文件

    1 例子 java调用批处理文件 public classRunJarBat {public static voidrunJarBat() {//调用控制台 Runtime rt =Runtime.g ...

最新文章

  1. CentOS7 systemctl的使用
  2. 桌面笔记工具KeepNote
  3. 9、Java Swing JRadioButton:单选按钮组件
  4. 南农计算机分数线,南京农业大学
  5. 训练softmax分类器实例_第四章.模型训练
  6. 解决方案:用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。
  7. NoSuchMethodError 发生原因和解决办法
  8. BZOJ[1009] [HNOI2008]GT考试
  9. Vue项目实战06:nprogress页面加载进度条
  10. textedit怎么插入数据_还在手动插入Excel交叉空白行?这个小技巧10秒搞定
  11. web.xml.jsf_使用JSF 2.2功能来开发可滚动,可延迟加载的Ajax数据表
  12. 使用Schedule来实现动态的定时任务
  13. Windows下MYSQL数据库BOOT密码的修改方法
  14. unable to remove repository reference  (must force) - container is using its referenced image
  15. 微信小程序复制就好-JS工具eval5,用JS替换VBA处理Excel数据
  16. snownlp抛出错误_9snowNLP常见用法
  17. 小程序插入激励视频广告教程
  18. 怎样使用LeapFTP,LeapFTP使用教程,如何使用LeapFTP上传网站源代码(图解)
  19. 丅rust是什么意思_网红编程语言Rust到底是个什么鬼?
  20. Could not resolve placeholder

热门文章

  1. 【真人手指动画制作软件】万彩手影大师教程 | 手影大师注册登录
  2. PhotoshopCS5第二篇 管理图像和使用绘图辅助工具
  3. 【转】iPad使用26攻略
  4. 1 安培3.2V磷酸铁锂电池充电方案
  5. Mybatis - 一对多/多对一映射
  6. 西川中学学生管理系统(伪)1.1版本
  7. (沙盘)sandboxie的使用方法
  8. Windows-设置Python定时任务
  9. 一键反编译Android包教程
  10. 动态获取图片尺寸-uniapp