作者:井底蛙的天空13 | 来源:互联网 | 2023-09-24 18:09
前言做毕业设计需要一个服务器来保存文件,选择了腾讯云对象存储来实现。新用户有免费额度,刚好用来做毕设相关文档腾讯云对象存储官方文档官网创建存储桶和用户等信息存储桶注册腾讯云用户(微
前言
做毕业设计需要一个服务器来保存文件,选择了腾讯云对象存储来实现。
新用户有免费额度,刚好用来做毕设
相关文档
腾讯云 对象存储官方文档
官网创建存储桶和用户等信息
存储桶
注册腾讯云用户(微信注册很快就ok)
创建存储桶(新人免费)
- 这里我选择私有读写,区域选的北京。输入存储桶名称后点确定即可。
建议创建子账号
- 在访问管理-用户-用户列表中按提示创建即可
- 子用户的密钥在访问管理-用户-用户列表-密钥中查看
编写工具类
配置与初始化客户端
public class CosUtil {
//secretId和secretKey在腾讯云访问管理-用户-用户列表-API密钥处获得
private final String secretId = "你的secretId";
private final String secretKey = "你的secretKey";
public static final CosUtil INSTANCE = new CosUtil();
private final String bucketName;
public final COSClient cosClient;
private CosUtil() {
COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
// 这里填写自己的region 我的是北京 在存储桶列表的所属区域中查看
Region region = new Region("ap-beijing");
ClientConfig clientConfig = new ClientConfig(region);
// 填写自己的存储桶名称 在存储桶列表的存储同名称处查看
bucketName = "";
clientConfig.setHttpProtocol(HttpProtocol.https;);
cosClient = new COSClient(cred, clientConfig);
}
}
编写访问方法
/** * 上传文件到服务器 如果key重复将被覆盖 */
public Url put(String key, File file) {
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, file);
return cosClient.putObject(putObjectRequest);
}
/** * 获取带权限的下载链接 */
public URL getSourceUrl(String key) {
GeneratePresignedUrlRequest req =
new GeneratePresignedUrlRequest(bucketName, key, HttpMethodName.GET);
// 设置签名过期时间(可选), 若未进行设置, 则默认使用 ClientConfig 中的签名过期时间(1小时)
// 这里设置签名在半个小时后过期
Date expirationDate = new Date(System.currentTimeMillis() + 30L * 60L * 1000L);
req.setExpiration(expirationDate);
return cosClient.generatePresignedUrl(req);
}
/** * 删除已上传的资源 */
public void deleteSource(String key) {
cosClient.deleteObject(bucketName, key);
}
使用刚才定义的工具类
CosUtil.INSTANCE.put(key, file);
CosUtil.INSTANCE.getSourceUrl(csIcon);