一、参考API
官网SDK文档参考:Java SDK - 公有云文档中心 (qingcloud.com)
二、环境说明
公有云跟私有云区别:
使用公有云QingStor,直接按照官网sdk直接可对接,私有云QingStor的话,需要设置具体的私有云请求地址及zoneName,具体如何识别,如下:
- 先登录对象存储控制台创建bucketName

- 创建完成后看到bucketName列表的URL字段
https://testbk.pek3b.qingstor.com
解释说明:
https         协议  
testbk        bucketName
pek3b         zoneName 
qingstor.com  请求地址三、具体使用
连接QingStor需要的参数信息:
| # | 参数 | 说明 | 
| 1 | endPoint | 请求地址,即URL中的协议+请求地址,公有云不填,私有云根据信息拼接如:https://qingstor.com | 
| 2 | ak | AK(Access Key ID):访问密钥ID | 
| 3 | sk | SK(Secret Access Key):与访问密钥ID结合使用的密钥 | 
| 4 | zoneName | 你的bucket所在的zone,比如pek3a | 
| 5 | bucketName | bucket名称,如果没有创建先从控制台或者api创建bucket | 
代码示例
引入依赖
<dependency>
    <groupId>com.yunify</groupId>
    <artifactId>qingstor.sdk.java</artifactId>
    <version>2.5.1</version>
 </dependency>String endPoint ="";//私有云需设置
public String ak="";//AK(Access Key ID):访问密钥ID
public String sk="";//SK(Secret Access Key):与访问密钥ID结合使用的密钥
public String zoneName="pek3b";//你的bucket所在的zone,比如pek3a
public String bucketName ="testbk";//bucket名称,如果没有创建先从控制台或者api创建bucket
public void testQingStor() {
        try {
            EnvContext env = new EnvContext(ak, sk);
            //私有云设置
            if (StringUtils.isNotBlank(endPoint)) {
                env.setEndpoint(endPoint);
            }
            // 获取QingStor对象
            QingStor qingstor = new QingStor(env);
            // 获取Bucket对象
            Bucket bucket = qingstor.getBucket(bucketName, zoneName);
            
            //【1】获取账户下的 Bucket 列表
            QingStor.ListBucketsOutput listBucketsOutput = qingstor.listBuckets(null);
            System.out.println("获取账户下的 Bucket 列表 ");
            ObjectMapper mapper = new ObjectMapper();
            String jsons = mapper.writeValueAsString(listBucketsOutput);
            System.out.println("获取账户下的 Bucket 列表 " + jsons);
            //【2】上传文件测试
            File f = new File("C:\\12.jpg");
            Bucket.PutObjectInput input = new Bucket.PutObjectInput();
            // input 可以设置 File, Stream 等作为要上传的内容.
            input.setBodyInputFile(f);
            // 可选设置.
            //            input.setContentType();
            input.setContentLength(f.length());
            Bucket.PutObjectOutput putObjectOutput = bucket.putObject(f.getName(), input);
            
            //【3】获取所有文件清单
            Bucket.ListObjectsOutput listObjectsOutput = bucket.listObjects(null);
            
            //【4】获取文件 转存至本地
            String key="12.jpg";
            Bucket.GetObjectInput headObjectInput = new Bucket.GetObjectInput();
            Bucket.GetObjectOutput output = bucket.getObject(key, headObjectInput);
            try {
                InputStream inputStream = output.getBodyInputStream();
                File tmp = File.createTempFile("lzq", ".jpg", new File("C:\\"));
                OutputStream os = new FileOutputStream(tmp);
                int bytesRead = 0;
                byte[] buffer = new byte[8192];
                while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) {
                    os.write(buffer, 0, bytesRead);
                }
                inputStream.close();
                if (output.getStatueCode() != 200) {
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            
            System.out.println(1);
        } catch (QSException e) {
            e.printStackTrace();
        }
    }四、验证查看
配置好参数后,执行测试脚本。

最后登录对象存储控制台查看文件资源:




















