腾讯云存储桶

项目中需要先在pom.xml中导入maven依赖

包括了上传、下载、删除文件

import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.exception.CosClientException;
import com.qcloud.cos.model.*;
import com.qcloud.cos.region.Region;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;

// 其中所有xxx都是需要去自己设置的

/**
 * 腾讯云对象存储
 */
public class TencentUtils {

    private static final Logger logger = LoggerFactory.getLogger(TencentUtils.class);

    // 此处填写的存储桶名称(同一腾讯云内,不同存储桶名称不同,其余配置相同)
    private static final String bucketName = "xxx";

    // secretId
    private static final String secretId = "xxx";
    // secretKey
    private static final String secretKey = "xxx";

    // 1 初始化用户身份信息(secretId, secretKey,可在腾讯云后台中的API密钥管理中查看!
    private static COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);

    // 2 设置bucket的区域, COS地域的简称请参照
    // 根据自己创建的存储桶选择地区
    private static ClientConfig clientConfig = new ClientConfig(new Region("xxx"));

    private static TencentUtils instance;

    // 实例化此类,便于其他类可以使用其内部方法
    public static TencentUtils getInstance() {
        if (instance == null) {
            instance = new TencentUtils();
        }
        return instance;
    }

    // 主类测试
    public static void main(String[] args) {
        TencentUtils tencentUtils = new TencentUtils();
        // 测试上传文件功能
        tencentUtils.uploadfile("H://xxx//20.jpg", null);
        // 测试下载文件功能
        tencentUtils.downFile("imgxxx.png", "H://xxx//110.jpg");
        // 打印存储桶名字
        System.out.println(bucketName);
    }


    /**
     * 简单文件上传, 最大支持 5 GB, 适用于小文件上传, 建议 20 M 以下的文件使用该接口 大文件上传请参照 API 文档高级 API 上传
     *
     * @param localFilePath
     */
    public  String uploadfile(String localFilePath, String key) throws CosClientException {

        // 生成cos客户端
        COSClient cosclient = new COSClient(cred, clientConfig);
        File localFile = new File(localFilePath);
        String fileName = localFile.getName();
        try {
            // 指定要上传到 COS 上的路径
            fileName = ("img" + System.currentTimeMillis() + ".png");// 保存文件的名字命名方式
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, fileName, localFile);
            PutObjectResult putObjectResult = cosclient.putObject(putObjectRequest);
        } catch (Exception e) {
            // 打印日志中的错误信息
            logger.error(e.getMessage() + e.getStackTrace());
        } finally {
            // 关闭客户端(关闭后台线程)
            cosclient.shutdown();
        }
        return fileName;
    }

    /**
     * @return
     * @Title: downFile
     * @Description: 下载文件
     */
    public String downFile(String key, String downFilePath) throws CosClientException {

        // 生成cos客户端
        COSClient cosclient = new COSClient(cred, clientConfig);
        File downFile = new File(downFilePath);
        //要下载的文件路径和名称
        String fileName = downFile.getName();
        // 指定要下载的文件所在的 bucket 和对象键
        GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
        ObjectMetadata downObjectMeta = cosclient.getObject(getObjectRequest, downFile);
        return fileName;
    }

    /**
     * 删除文件
     *
     * @param key
     */
    public void deletefile(String key) throws CosClientException {
        // 生成cos客户端
        COSClient cosclient = new COSClient(cred, clientConfig);
        // 指定要删除的 bucket 和路径
        cosclient.deleteObject(bucketName, key);
        // 关闭客户端(关闭后台线程)
        cosclient.shutdown();
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值