【对象存储】SpringBoot集成华为云OBS对象存储
package com.example.meetings.controller;
import com.obs.services.ObsClient;
import com.obs.services.model.*;
import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @ClassName: ObsController
* @Description: OBS服务器Controller
* @Author: wuhuiju
* @Version: 1.0
*/
@RestController
@RequestMapping({ "/oss" })
public class HweiYunOBSController {
/**
* 完整域名为/oss/policy
* 返回结果
formParams.put("x-obs-acl", "public-read");
formParams.put("content-type", "text/plain");
formParams.put("accessId", accessId);
formParams.put("policy", response.getPolicy());
formParams.put("signature", response.getSignature());
formParams.put("dir", dir);
formParams.put("host", host);
*/
@CrossOrigin
@GetMapping("/policy")
public Map<String, Object> policy() {
// 访问Id
String accessId = "************************";
// 访问密钥
String accessKey = "************************";
// Endpoint
String endpoint = "************************";
// 填写Bucket名称
String bucket = "pic";
// 填写Host地址,格式为https://bucketname.endpoint。
String host = "https://" + bucket + "." + endpoint;
// 设置上传到OSS文件的前缀,可置空此项
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
// 生成文件夹,以日期为文件夹名
String dateform = simpleDateFormat.format(new Date());
String dir = "pic/" + dateform + "/";
// 创建ObsClient实例
// 使用永久AK/SK初始化客户端
ObsClient obsClient = new ObsClient(accessId, accessKey,endpoint);
try {
// 生成基于表单上传的请求
PostSignatureRequest request = new PostSignatureRequest();
// 返回结果
Map<String, Object> formParams = new HashMap<String, Object>();
// 设置对象访问权限为公共读
formParams.put("x-obs-acl", "public-read");
// 设置对象MIME类型
formParams.put("content-type", "image/jpeg");
request.setFormParams(formParams);
// 设置表单上传请求有效期,单位:秒
request.setExpires(3600);
PostSignatureResponse response = obsClient.createPostSignature(request);
formParams.put("accessId", accessId);
formParams.put("policy", response.getPolicy());
formParams.put("signature", response.getSignature());
formParams.put("dir", dir);
formParams.put("host", host);
return formParams;
} catch (Exception e) {
System.out.println(e.getMessage());
}
return null;
}
}