- 软件名称:Minsx-ccs (全称:minsx-common-cloud-storge 即公共云存储)
- 版本号:1.0.0
- 开发者:www.minsx.com
- 语言:Java
- 功能:统一各云平台对象存储的调用,只需要简单的配置即可完成各云平台对象存储的调用管理,其中包括:
- 阿里云 OSS
- 百度云 BOS
- 腾讯云 COS
- 七牛 KODO
- 本地存储(操作系统文件形式的存储,非对象存储)
- 优点:开箱即用/配置简单/通用/可扩展/为混合对象存储而生
- 缺点:部分功能被阉割(注:您仍可以获取原生客户端进行更细致的操作)
- 开源协议:Apache License Version 2.0 http://www.apache.org/licenses/
- 数据托管在以上多家云平台对象存储的企业
- 需要具备扩展性业务需求(将来会使用以上云平台对象存储)
- 基础语言为JAVA(如:Spring Boot)的框架及系统
private CCSClient ccsClient;
@Before
public void initial() {
AliyunOSSConfig aliyunOSSConfig = new AliyunOSSConfig();
aliyunOSSConfig.setEndPoint("http://oss-cn-hangzhou.aliyuncs.com");
aliyunOSSConfig.setAccessKeyId("LTAI94azdAVJieZJ");
aliyunOSSConfig.setAccessKeySecret("SaFDFCHSGCljmleQtRdVuZHmeedvty");
ccsClient = new AliyunOSSImpl(aliyunOSSConfig);
}
@After
public void end() {
ccsClient.shutdown();
}
@Test
public void getObjectMetaData() {
ccsClient.getObjectMetadata("minsx-bucket", "A.docx").getUserMetaData().forEach((key,value)->{
System.out.println(key);
System.out.println(value);
});
}
@Test
public void getObject() {
CCSObject ccsObject = ccsClient.getObject("minsx-bucket", "A.docx");
System.out.println(ccsObject);
}
@Test
public void deleteObject() {
ccsClient.deleteObject("minsx-bucket", "A.docx");
}
@Test
public void putObject() {
CCSPutObjectResponse ccsPutObjectResponse = ccsClient.putObject("minsx-bucket", "A.docx","E:\\Temp\\A.docx");
System.out.println(JSON.toJSONString(ccsPutObjectResponse));
}
@Test
public void listObjects() {
CCSObjectList ccsObjectList = ccsClient.listObjects("minsx-bucket", "hospital");
List<CCSObjectSummary> ccsObjectSummaries = ccsObjectList.getCcsObjectSummaries();
ccsObjectSummaries.forEach(ccsObjectSummary->{
System.out.println(ccsObjectSummary.getCcsPath());
});
}
@Test
public void listAllObjects() {
final int maxKeys = 10;
String nextMarker = null;
CCSObjectList objectListing=null;
int sum=0;
do {
objectListing = ccsClient.listObjects(new CCSListObjectsRequest("minsx-bucket").withPrefix("oss-log").withMarker(nextMarker).withMaxKeys(maxKeys));
List<CCSObjectSummary> sums = objectListing.getCcsObjectSummaries();
for (CCSObjectSummary s : sums) {
System.out.println(s.getCcsPath());
}
nextMarker = objectListing.getNextMarker();
sum++;
} while (objectListing.isTruncated());
System.out.println(sum);
}
@Test
public void listObjectsByPage() {
CCSObjectList ccsObjectList = ccsClient.listObjects(new CCSPageObjectsRequest("minsx-bucket", "oss-log", 1, 10));
List<CCSObjectSummary> ccsObjectSummaries = ccsObjectList.getCcsObjectSummaries();
ccsObjectSummaries.forEach(ccsObjectSummary->{
System.out.println(ccsObjectSummary.getCcsPath());
});
ccsClient.shutdown();
}
@Test
public void listCCSBuckets() {
List<CCSBucket> ccsBuckets = ccsClient.listCCSBuckets();
ccsBuckets.forEach(bucket->{
System.out.println(bucket.getName());
});
}
@Test
public void putObjectByCCSPutObjectRqeuest() {
CCSPutObjectRqeuest ccsPutObjectRqeuest = new CCSPutObjectRqeuest();
ccsPutObjectRqeuest.setBucketName("minsx-bucket");
ccsPutObjectRqeuest.setCcsObjectPath("A.docx");
ccsPutObjectRqeuest.setFile(new File("E:\\Temp\\A.docx"));
ccsClient.putObject(ccsPutObjectRqeuest);
}
- 注:我们对原生Key做了重命名为ccsObjectPath (实际对象存储中并不存在路径及文件夹等概念)
- 在语法上我们尽量靠近各原生SDK以降低学习成本