首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java实现腾讯云配置

java实现腾讯云配置

原创
作者头像
小焱
发布2025-07-09 17:36:41
发布2025-07-09 17:36:41
2300
举报
文章被收录于专栏:Java开发Java开发
代码语言:java
复制
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.model.PutObjectRequest;
import com.qcloud.cos.model.PutObjectResult;
import com.qcloud.cos.model.GetObjectRequest;
import com.qcloud.cos.region.Region;
import com.qcloud.cos.model.COSObject;
import com.qcloud.cos.exception.CosClientException;
import com.qcloud.cos.exception.CosServiceException;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.FileOutputStream;

public class TencentCloudCOSExample {
    // 腾讯云 API 密钥信息
    private static final String SECRET_ID = "your-secret-id";
    private static final String SECRET_KEY = "your-secret-key";
    // 存储桶名称,格式:BucketName-APPID
    private static final String BUCKET_NAME = "your-bucket-name-appid";
    // 地域信息,例如 ap-guangzhou
    private static final String REGION = "your-region";

    public static void main(String[] args) {
        // 初始化 COSClient
        COSClient cosClient = initCosClient();
        
        try {
            // 上传文件示例
            uploadFile(cosClient);
            
            // 下载文件示例
            downloadFile(cosClient);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 关闭客户端
            cosClient.shutdown();
        }
    }

    /**
     * 初始化 COS 客户端
     */
    private static COSClient initCosClient() {
        // 1. 初始化用户身份信息(secretId, secretKey)
        COSCredentials cred = new BasicCOSCredentials(SECRET_ID, SECRET_KEY);
        // 2. 设置 bucket 的区域, COS 地域的简称请参照 https://cloud.tencent.com/document/product/436/6224
        ClientConfig clientConfig = new ClientConfig(new Region(REGION));
        // 3. 生成 cos 客户端
        return new COSClient(cred, clientConfig);
    }

    /**
     * 上传文件到 COS
     */
    private static void uploadFile(COSClient cosClient) {
        // 要上传的文件
        File localFile = new File("path/to/local/file.txt");
        // 存储在 COS 中的路径
        String key = "example/file.txt";

        // 创建上传请求
        PutObjectRequest putObjectRequest = new PutObjectRequest(BUCKET_NAME, key, localFile);
        
        try {
            // 执行上传
            PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);
            // 上传成功后,可以获取文件的 etag
            String etag = putObjectResult.getETag();
            System.out.println("文件上传成功,ETag: " + etag);
        } catch (CosServiceException e) {
            // 服务端异常
            e.printStackTrace();
        } catch (CosClientException e) {
            // 客户端异常
            e.printStackTrace();
        }
    }

    /**
     * 从 COS 下载文件
     */
    private static void downloadFile(COSClient cosClient) {
        // 存储在 COS 中的路径
        String key = "example/file.txt";
        // 下载到本地的路径
        File localFile = new File("path/to/download/file.txt");

        // 创建下载请求
        GetObjectRequest getObjectRequest = new GetObjectRequest(BUCKET_NAME, key);
        
        try {
            // 执行下载
            COSObject cosObject = cosClient.getObject(getObjectRequest);
            // 获取文件输入流
            InputStream inputStream = cosObject.getObjectContent();
            
            // 将文件写入本地
            FileOutputStream fileOutputStream = new FileOutputStream(localFile);
            byte[] buffer = new byte[1024 * 1024];
            int bytesRead;
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                fileOutputStream.write(buffer, 0, bytesRead);
            }
            
            // 关闭流
            fileOutputStream.close();
            inputStream.close();
            
            System.out.println("文件下载成功");
        } catch (CosServiceException e) {
            // 服务端异常
            e.printStackTrace();
        } catch (CosClientException e) {
            // 客户端异常
            e.printStackTrace();
        } catch (IOException e) {
            // IO 异常
            e.printStackTrace();
        }
    }
}    

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档