腾讯云COS云存储入门(一)

COS云存储

  • 1.什么是COS云存储
  • 2.产品优势
  • 3.操作实战
    • 3.1 COS参数准备
    • 3.2 COS云存储(上传文件)
    • 3.3 COS云存储(下载文件)
  • 4.效果展示

1.什么是COS云存储

对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据。腾讯云 COS 使所有用户都能使用具备高扩展性、低成本、可靠和安全的数据存储服务。
COS 通过控制台、API、SDK 和工具等多样化方式简单、快速地接入,实现了海量数据存储和管理。通过 COS 可以进行任意格式文件的上传、下载和管理。腾讯云提供了直观的 Web 管理界面,同时遍布全国范围的 CDN 节点可以对文件下载进行加速。

2.产品优势

1.稳定持久
2.安全可靠
3.成本最优
4.简单易用
5.接入便捷
6.服务集成

详情参考腾讯官方文档:
https://cloud.tencent.com/document/product/436/8186

3.操作实战

腾讯API文档:https://cloud.tencent.com/document/product/436/35215

3.1 COS参数准备

API密匙:secretId & secretKey
腾讯云COS云存储入门(一)_第1张图片
腾讯云COS云存储入门(一)_第2张图片
bucketName:存储桶名称
如下图:刚开始没有,则进行创建存储桶。
腾讯云COS云存储入门(一)_第3张图片
regionName :所在地区
腾讯云COS云存储入门(一)_第4张图片
appId:唯一标识
腾讯云COS云存储入门(一)_第5张图片

3.2 COS云存储(上传文件)

package com.xxxxx.cjrh.file.server.util;

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.http.HttpMethodName;
import com.qcloud.cos.model.GeneratePresignedUrlRequest;
import com.qcloud.cos.model.GetObjectRequest;
import com.qcloud.cos.model.PutObjectRequest;
import com.qcloud.cos.model.PutObjectResult;
import com.qcloud.cos.region.Region;
import com.qcloud.cos.transfer.Download;
import com.qcloud.cos.transfer.TransferManager;

import java.io.File;
import java.net.URL;
import java.util.Date;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class CosUtils {

    private static String secretId = "**************";
    private static String secretKey = "**************";
    private static String bucketName = "zs-1259422979";//bucket名称
    private static String regionName = "ap-guangzhou";  //地区
    private static String baseUrl = "https://zs-1259422979.cos.ap-guangzhou.myqcloud.com"; //cos基本地址
    private static String appId = "*****";

    static TransferManager transferManager = null;

    //获取cosClient
    public static COSClient getCosClient() {
        // 1 初始化用户身份信息(secretId, secretKey)。
        COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
        // 2 设置 bucket 的区域, COS 地域的简称请参照 https://cloud.tencent.com/document/product/436/6224
        // clientConfig 中包含了设置 region, https(默认 http), 超时, 代理等 set 方法, 使用可参见源码或者常见问题 Java SDK 部分。
        Region region = new Region(regionName);
        ClientConfig clientConfig = new ClientConfig(region);
        // 3 生成 cos 客户端。
        COSClient cosClient = new COSClient(cred, clientConfig);
        // 指定要上传到 COS 上的路径
        ExecutorService threadPool = Executors.newFixedThreadPool(32);
        // 传入一个 threadpool, 若不传入线程池, 默认 TransferManager 中会生成一个单线程的线程池。
        transferManager = new TransferManager(cosClient, threadPool);
        return cosClient;
    }

    //1.普通上传
    public static String  uploadCos(File localFile ,String filePath){
        //获取客户端
        COSClient cosClient =getCosClient();
        // 指定要上传到 COS 的文件路径
        //String key = "cjrh/img/1111.png";
        String key = filePath;
        PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);
        PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);
        //关闭客户端
        cosClient.shutdown();
        return baseUrl+"/"+key;
    }

    public static void main(String[] args) {

        // 指定要上传的文件
        File localFile = new File("D:\\1111.png");
        String filePath = "cjrh/img/3333.png";
        String url = uploadCos(localFile,filePath);
       System.out.println(url);



    }
}

3.3 COS云存储(下载文件)

public class CosUtils {

    private static String secretId = "*************";
    private static String secretKey = "***********";
    private static String bucketName = "zs-1259422979";//bucket名称
    private static String regionName = "ap-guangzhou";  //地区
    private static String baseUrl = "https://zs-1259422979.cos.ap-guangzhou.myqcloud.com"; //cos基本地址
    private static String appId = "**************";

    static TransferManager transferManager = null;

    //获取cosClient
    public static COSClient getCosClient() {
        // 1 初始化用户身份信息(secretId, secretKey)。
        COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
        // 2 设置 bucket 的区域, COS 地域的简称请参照 https://cloud.tencent.com/document/product/436/6224
        // clientConfig 中包含了设置 region, https(默认 http), 超时, 代理等 set 方法, 使用可参见源码或者常见问题 Java SDK 部分。
        Region region = new Region(regionName);
        ClientConfig clientConfig = new ClientConfig(region);
        // 3 生成 cos 客户端。
        COSClient cosClient = new COSClient(cred, clientConfig);
        // 指定要上传到 COS 上的路径
        ExecutorService threadPool = Executors.newFixedThreadPool(32);
        // 传入一个 threadpool, 若不传入线程池, 默认 TransferManager 中会生成一个单线程的线程池。
        transferManager = new TransferManager(cosClient, threadPool);
        return cosClient;
    }

  

    //2.普通下载
    public static void downLoadFile() {
        // 1 初始化用户身份信息(secretId, secretKey)
        COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
        // 2 设置bucket的区域, COS地域的简称请参照 https://www.qcloud.com/document/product/436/6224
        ClientConfig clientConfig = new ClientConfig(new Region(regionName));
        // 3 生成cos客户端
        COSClient cosclient = new COSClient(cred, clientConfig);
        // bucket名需包含appid
        String bucket = "zs-1259422979";

        ExecutorService threadPool = Executors.newFixedThreadPool(32);
        // 传入一个threadpool, 若不传入线程池, 默认TransferManager中会生成一个单线程的线程池。
        TransferManager transferManager = new TransferManager(cosclient, threadPool);

        String key = "/cjrh/img/1111.png";
        File downloadFile = new File("d:/1-4.png");
        GetObjectRequest getObjectRequest = new GetObjectRequest(bucket, key);
        try {
            // 返回一个异步结果copy, 可同步的调用waitForCompletion等待download结束, 成功返回void, 失败抛出异常.
            Download download = transferManager.download(getObjectRequest, downloadFile);
            download.waitForCompletion();
        } catch (CosServiceException e) {
            e.printStackTrace();
        } catch (CosClientException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        transferManager.shutdownNow();
        cosclient.shutdown();
    }


  

    public static void main(String[] args) {



        //下载
        downLoadFile();

      

    }
}

4.效果展示

腾讯云COS云存储入门(一)_第6张图片

你可能感兴趣的:(云存储Oss,云存储,java)