【Java】Ceph对Swift的支持及Java…
来源:互联网 发布:安卓触屏修护软件 编辑:程序博客网 时间:2024/05/16 04:04
2.集群生成的密码字符串的处理:
import org.javaswift.joss.client.factory.AccountConfig;import org.javaswift.joss.client.factory.AccountFactory;import org.javaswift.joss.client.factory.AuthenticationMethod;import org.javaswift.joss.model.Account;import org.javaswift.joss.model.Container;import org.javaswift.joss.model.StoredObject;import java.io.File;import java.util.*;* * Created by BBSee rolltion.zhang@foxmail.com on 2017/6/12. *public class SwiftClient { private static String username = "testuser";//注意!在ceph集群里面创建user后如果需要支持Swift Api需要在当前user下创建一个subuser来作为这里的参数,不能直接使用radosgw的账户! private static String password = "244 fz2gSqoHwR3lYtSbIyomyPHf3i7rgSJrF/IA" ;//密码是集群创建账号时对应的Swift的Secret_key而不是access_key private static String authUrl = "xx.1x.14x.11x:748x/auth/1.0";// 有域名就写域名,没有就写IP:端口号 private static Account account; static { AccountConfig config = new AccountConfig(); config.setUsername(username);
config.setPassword(password); config.setAuthUrl(authUrl); config.setAuthenticationMethod(AuthenticationMethod.BASIC); account = new AccountFactory(config).createAccount(); }* * 该方法用于创建容器 * @return */ public boolean createContainer(String containName) { Container container = account.getContainer(containName); container.create(); return container.exists(); }* * 该方法用于创建存储时的对象 * @param containName * @param objectName * @param filePath * @return */ public boolean createObject(String containName,String objectName,String filePath) { Container container = account.getContainer(containName); StoredObject object = container.getObject(objectName); object.uploadObject(new File(filePath)); return object.exists(); }* * 该方法用于元数据的添加或者更新 * @param containerName * @param objectName * @param newKey * @param newValue * public void addNupdateObjectMetadata(String containerName,String objectName,String newKey,String newValue) { Container container = account.getContainer(containerName); StoredObject object = container.getObject(objectName); Map metadata = new TreeMap(); metadata.put(newKey,newValue); object.setMetadata(metadata); }** * 列举当前用户已创建的容器名 * * @return * public List listContainer() { List list = new ArrayList(); Collection containers = account.list(); for (Container currentContainer : containers) { list.add(currentContainer.getName()); System.out.println(currentContainer.getName()); } return list; }* * 该方法用于列举指定容器的内容 * @param containerName * @return * public List getContent(String containerName){ List list=new ArrayList(); Container container = account.getContainer(containerName); Collection objects = container.list(); for (StoredObject currentObject : objects) { list.add(currentObject.getName()); System.out.println(currentObject.getName()); } return list; }* * 该方法用于获取Object到本地文件系统 * @param containerName * @param objectName * @param outpath * public void retrieveObject(String containerName,String objectName,String outpath){ Container container = account.getContainer(containerName); StoredObject object = container.getObject(objectName); object.downloadObject(new File(outpath)); }** * 该方法用于删除指定对象 * @param containerName * @param objectName * @return * public boolean deleteObject(String containerName,String objectName){ Container container = account.getContainer(containerName); StoredObject object = container.getObject(objectName); object.delete(); return !object.exists(); }** * 该方法用于删除指定的容器 * 你也许会看到官方这样写道:"The container must be empty! Otherwise it won’t work!",和S3一样,这里我们已经做了处理,忽略这个提示。 * @param containerName * @return * public boolean deleteContainer(String containerName){ Container container = account.getContainer(containerName); if(this.getContent(containerName).isEmpty()){ container.delete();}else{ for(String str:this.getContent(containerName)){ this.deleteObject(containerName,str); } container.delete(); } return !container.exists(); }}
阅读全文
0 0
- 【Java】Ceph对Swift的支持及Java…
- Java对多线程的支持
- Java对多媒体的支持
- Java对多媒体的支持
- java对管程的支持
- Java对脚本语言的支持
- WinCE 对 Java脚本的支持
- 查看手机对Java的支持情况
- java对平台无关性的支持
- Java SE 6 对脚本语言的支持
- Java对观察者模式的支持
- Linux中java对中文字体的支持
- Java对正则表达式的支持
- JAVA语言对国际化支持的原理
- Java 6对脚本的支持
- Java System 类对ID 的支持
- Java API 对图像的支持
- Java内置对字符串的支持;
- [读书笔记]Windows系统下的docker…
- 基于Centos7的Ceph环境搭建
- RS232的硬件流控
- 【读书笔记】Java整合Ceph radowsgw 和 Amazon S3
- Ceph和Swift的比较-为什么他们没有撕逼
- 【Java】Ceph对Swift的支持及Java…
- centos 7安装Docker,并配置加速器
- 基于SpringDataJpa的mysql动态分页多表查询
- HDU-2108--Shape of HDU---利用叉积判断凹凸多边形
- python绘线(简单)
- 简单dp 完全背包
- Android属性动画深入分析
- 百度地图之鹰眼轨迹V3之初探
- 开机 出现Failed to start Load Kernel Modules(Archlinux)