腾讯云对象存储工具类

package com.seed.pro.utils;  
  
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.exception.CosServiceException;  
import com.qcloud.cos.model.*;  
import com.qcloud.cos.region.Region;  
  
import java.io.File;  
import java.util.Calendar;  
import java.util.Random;  
  
  
/**  
 * 腾讯云对象存储工具类  
 *  
 */public class TencentCosUtil {  
  
    //bucket的区域  
 private static final String bucket = "ap-nanjing";  
    // 此处填写的存储桶名称  
 private static final String bucketName = "seed2-1302289795";  
    // secretId  
 private static final String secretId = "AKIDDG2YnkRr0sUptgDTSAcnhKgmb9QRCgtp";  
    // secretKey  
 private static final String secretKey = "i9JCpBG4fz3qMddMo0vZw3tSkkTv72h5";  
  
    // 1 初始化用户身份信息(secretId, secretKey,可在腾讯云后台中的API密钥管理中查看!  
 private static COSCredentials cred = new BasicCOSCredentials(secretId,secretKey);  
  
    // 2 设置bucket的区域, COS地域的简称请参照  
 // https://cloud.tencent.com/document/product/436/6224,根据自己创建的存储桶选择地区  
 private static ClientConfig clientConfig = new ClientConfig(new Region(bucket));  
  
  
    private static String FilePath = "img";  
    /**  
 * 简单文件上传, 最大支持 5 GB, 适用于小文件上传, 建议 20 M 以下的文件使用该接口 大文件上传请参照 API 文档高级 API 上传  
 *  
 * @param localFile  
 */ public static String uploadfile(File localFile) throws CosClientException, CosServiceException {  
        Calendar calendar = Calendar.getInstance();  
        int year = calendar.get(Calendar.YEAR);  
        int month = calendar.get(Calendar.MONTH)+1;  //注意加1  
 int day = calendar.get(Calendar.DATE);  
  
        // 生成cos客户端  
 COSClient cosclient = new COSClient(cred, clientConfig);  
        String fileName = localFile.getName();  
        try {  
            String substring = fileName.substring(fileName.lastIndexOf("."));  
            Random random = new Random();  
            // 指定要上传到 COS 上的路径  
 //random.nextInt(10000) + System.currentTimeMillis()或者UUID  
 fileName = FilePath+"/"+year+"/"+month+"/"+day+"/"+ random.nextInt(10000) + System.currentTimeMillis()+ substring;  
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, fileName , localFile);  
            PutObjectResult putObjectResult = cosclient.putObject(putObjectRequest);  
        } catch (Exception e) {  
            e.printStackTrace();  
        } finally {  
            // 关闭客户端(关闭后台线程)  
 cosclient.shutdown();  
        }  
        return fileName;  
    }  
  
  
    /**  
 * * @Title: downFile  
 * @Description: 下载文件  
 * @return  
 */  
 public static void downFile() {  
        // 生成cos客户端  
 COSClient cosclient = new COSClient(cred, clientConfig);  
        //要下载的文件路径和名称  
 String key = "down/demo1.jpg";  
        // 指定文件的存储路径  
 File downFile = new File("src/test/resources/mydown.txt");  
        // 指定要下载的文件所在的 bucket 和对象键  
 GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);  
        ObjectMetadata downObjectMeta = cosclient.getObject(getObjectRequest, downFile);  
    }  
  
  
    /**  
 * 删除文件  
 *  
 * @param key  
 */ public static void deletefile(String key) throws CosClientException, CosServiceException {  
        // 生成cos客户端  
 COSClient cosclient = new COSClient(cred, clientConfig);  
        // 指定要删除的 bucket 和路径  
 cosclient.deleteObject(bucketName, key);  
        // 关闭客户端(关闭后台线程)  
 cosclient.shutdown();  
    }  
}
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐