java调用obs直播_OBS JAVA SDK Demo:设置桶策略
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:设置桶策略相关推荐
- java调用exe_要精通Java,先研究它的执行原理
对于任何一门语言,要想达到精通的水平,研究它的执行原理(或者叫底层机制)不失为一种良好的方式. 在本篇文章中,将重点研究java源代码的执行原理,即从程序员编写JAVA源代码,到最终形成产品,在整个过 ...
- java调用wcf_详解JAVA调用WCF服务的示例代码
这一篇将要解决java中调用WCF的问题,使用的依旧是上一篇中托管在IIS中的WCF服务,本来我是打算用axis来写这篇文章的,可就在我开始之前,无意中发现了在java包中自带的wsimport工具 ...
- android java 调用js,Android中Java和JavaScript交互实例
Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本.本文将介绍如何实现Java代码和Javascript代码的相互调用. 如 ...
- java调用exe_Windows系统中Java调用cmd命令及执行exe程序的方法
Java调用cmd命令,并输出显示信息: package com.anxin.cmd.test; import java.io.BufferedReader; import java.io.Input ...
- java调用linux设备,使用Java调用Linux系统命令
有时候,咱们在使用Java作一些操做时,可能性能上并不能达到咱们满意的效果,就拿最近工做中的遇到的一个场景来讲,须要对大量的小文件进行合并成一个大文件.java 最开始的想法是使用Java作文件操做, ...
- gdb java,调用gdb来调试java程序
错误没有这样的文件或目录,gdb 如果错误消息来自emacs,则表示未安装 gdb . 要解决此问题,请安装 gdb . 请注意 gdb 不是emacs的一部分,它是一个单独的程序 . 如果你得到一个 ...
- Java调用动态库 缺点,Java调用动态库所需要关心的有关问题
Java调用动态库所需要关心的问题 标签: 无标签 利用JNative实现Java调用动态库(转) http://cctv663.blog.163.com/blog/static/1011921220 ...
- java 调用c 的dll,java如何调用C的dll
java怎么调用C的dll 我做了1个java调用c++的dll 想做一个java调用C的dll就不知道怎么做了 在xx.c里 写 JNIEXPORT jint JNICALL Java_testdl ...
- java调用批处理文件_有关java调用批处理文件
1 例子 java调用批处理文件 public classRunJarBat {public static voidrunJarBat() {//调用控制台 Runtime rt =Runtime.g ...
最新文章
- CentOS7 systemctl的使用
- 桌面笔记工具KeepNote
- 9、Java Swing JRadioButton:单选按钮组件
- 南农计算机分数线,南京农业大学
- 训练softmax分类器实例_第四章.模型训练
- 解决方案:用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。
- NoSuchMethodError 发生原因和解决办法
- BZOJ[1009] [HNOI2008]GT考试
- Vue项目实战06:nprogress页面加载进度条
- textedit怎么插入数据_还在手动插入Excel交叉空白行?这个小技巧10秒搞定
- web.xml.jsf_使用JSF 2.2功能来开发可滚动,可延迟加载的Ajax数据表
- 使用Schedule来实现动态的定时任务
- Windows下MYSQL数据库BOOT密码的修改方法
- unable to remove repository reference (must force) - container is using its referenced image
- 微信小程序复制就好-JS工具eval5,用JS替换VBA处理Excel数据
- snownlp抛出错误_9snowNLP常见用法
- 小程序插入激励视频广告教程
- 怎样使用LeapFTP,LeapFTP使用教程,如何使用LeapFTP上传网站源代码(图解)
- 丅rust是什么意思_网红编程语言Rust到底是个什么鬼?
- Could not resolve placeholder