如何在spring boot项目中利用腾讯云上传存储文件

注册与登录

1.访问 腾讯云官网,注册并登录账号。完成实名认证(这是必须的)。

2.开通COS服务

这里有指引,一步步照着点确定就行

在控制台首页搜索"对象存储"或"COS",进入产品页面,点击"立即使用"或"开通"。新用户通常有免费额度。https://console.cloud.tencent.com/cos

创建一个存储桶(Bucket)

这是最关键的一步,存储桶就是你存放文件的"柜子"。

在COS控制台,点击"创建存储桶"。

填写配置:

  • 名称 :起一个全球唯一的名字,比如 yourblog-private-msg-1250000000(后面的数字是你的APPID)。

  • 地域:选择离你用户最近的地域,如"上海"。

  • 访问权限 :务必选择"公有读私有写"。这样,用户才能直接通过链接查看你发的图片/文件,而上传则需要你的授权(通过后端代码)。

其他选项保持默认即可,点击"创建"。

获取你的API密钥(SecretId & SecretKey)

复制代码
 ### 这是你的"账号密码",代码用它来获得操作COS的权限。
复制代码
 ### 点击网页右上角你的账号名称,进入"访问管理" -\> "API密钥管理"。

你会看到 SecretId 和 SecretKey。请像保护密码一样妥善保管,不要泄露或提交到公开的代码仓库(如GitHub)。

这里在创建密钥的时候一定要选择为下载csv文件,要不然后面很难写对密钥

3.代码测试上传是否成功

1)建立spring boot项目

2)在pom.xml文件里添加如下依赖

java 复制代码
<dependency>
    <groupId>com.qcloud</groupId>
    <artifactId>cos_api</artifactId>
    <version>5.6.227</version>
</dependency>

3)在test/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.http.HttpProtocol;
import com.qcloud.cos.model.PutObjectRequest;
import com.qcloud.cos.model.PutObjectResult;
import com.qcloud.cos.region.Region;
import java.io.File;

public class CosSimpleTest {
    public static void main(String[] args) {
        // 1. 替换成你自己的信息(以下4项必须修改)
        String secretId = "AKIDug"; // 你的SecretId
        String secretKey = "eoq"; // 你的SecretKey(刚刚保存的那个长字符串)
        String region = "ap-shanghai"; // 存储桶地域,如上海是 ap-shanghai
        String bucketName = "wx4-133"; // 你的存储桶名称

        // 2. 准备一个要上传的本地测试文件(修改为你的文件绝对路径)
        File localFile = new File("C:/pages/pure/cat.jpg"); // 示例路径

        // 3. 初始化COS客户端
        COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
        Region reg = new Region(region);
        ClientConfig clientConfig = new ClientConfig(reg);
        clientConfig.setHttpProtocol(HttpProtocol.https); // 使用HTTPS协议
        COSClient cosClient = new COSClient(cred, clientConfig);

        try {
            // 4. 指定文件上传到COS后的路径和文件名
            String key = "test-images/" + localFile.getName(); // COS中的文件路径
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);
            PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);

            // 5. 如果成功,打印出文件的访问链接
            String url = "https://" + bucketName + ".cos." + region + ".myqcloud.com/" + key;
            System.out.println("✅ 上传成功!");
            System.out.println("✅ 文件访问URL: " + url);
            // 你可以复制这个URL到浏览器,看看能否打开图片

        } catch (Exception e) {
            System.err.println("❌ 上传失败,错误信息: " + e.getMessage());
            e.printStackTrace();
        } finally {
            // 6. 最后一定要关闭客户端
            cosClient.shutdown();
        }
    }
}

4)点击文件,运行测试

控制台显示文件上传成功

在https://console.cloud.tencent.com/cos刷新,出现文件夹就证明测试成功了。

相关推荐
励志师code18 分钟前
数据搬运与存储对接实战:rclone / juicesync 迁移 + 目录对账 + 容器多源挂载
运维·云计算
做运维的阿瑞1 小时前
Terraform 的 Provider 与 Resource
云原生·云计算·terraform
yichengerp2 小时前
电子元件ERP软件哪个好用?易呈云ERP与主流方案对比解析
大数据·运维·人工智能·云计算·制造
AKAMAI12 小时前
Akamai 宣布与Anthropic达成 116 亿美元多年期协议,以支持其日益增长的需求
人工智能·云计算
workflower21 小时前
手术机器人市场发展阶段
大数据·人工智能·机器人·云计算·无人机
yichengerp1 天前
中小电子厂用什么ERP?电子厂ERP管理软件实施要点与易呈方案推荐
大数据·运维·人工智能·云计算·制造
励志师code1 天前
RoCE 网络实战:从 NCCL 调优到 RDMA 硬件计数器排障
linux·运维·网络·云计算
腾讯云大数据1 天前
本体立骨架,语义供刻度——DataBuddy对企业AI语义架构的一次完整回答
大数据·人工智能·架构·云计算·腾讯云
KIDULT°1 天前
MySQL系列 (1):数据库原理
运维·数据库·mysql·云计算
yichengerp2 天前
电子行业常用erp系统有哪些?推荐适合中小电子厂的易呈erp软件,操作简单,易落地
大数据·运维·人工智能·云计算·制造