Springboot上传文件到腾讯对象存储COS

背景

在云服务器时代下附件或资源文件很少放在运行的服务器上,不利于多服务器访问,最简单的方式是将此类资源上传到对象存储COS。

什么是对象存储COS

对象存储(Cloud Object Storage,COS)是无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。
阿里云和腾讯云等大厂云服务都有此类服务

目的

了解如何上传文件到COS以及上传后如何访问上传后的文件

解决

以腾讯对象存储为例,将项目中需要保存的文件保存到对象存储中。

腾讯对象存储文档点这里

实例

使用腾讯COS上传文件十分简单,官方文档有详细的介绍,具体步骤如下

  1. 引入COS的SDK,支持Maven方式

  1. 获取腾讯云的密钥信息,密钥管理地址

  1. 将本地文件上传,官方还有各种语言的代码示例

如果密钥管理地址无法找到密钥信息,可以在腾讯云首页搜索 访问管理->访问密钥->API密钥管理

上实例

安装腾讯云SDK点这里,看文档

以下是Maven方式

<dependency>
       <groupId>com.qcloud</groupId>
       <artifactId>cos_api</artifactId>
       <version>5.6.97</version>
</dependency>
代码实现
public class PutObject {
    public static void main(String[] args) {
        putObjectDemo();
    }

    static void putObjectDemo() {
        // 初始化用户身份信息(secretId, secretKey)
        COSCredentials cred = new BasicCOSCredentials("AKIDXXXXXXXX","1A2Z3YYYYYYYYYY");
        // 设置bucket的区域, COS地域的简称请参照 https://www.qcloud.com/document/product/436/6224
        ClientConfig clientConfig = new ClientConfig(new Region("ap-guangzhou"));
        // 生成cos客户端
        COSClient cosclient = new COSClient(cred, clientConfig);

        String bucketName = "examplebucket-1251668577";
        String key = "abc/abc.txt"; // 上传后的文件名
        String localPath = "abc.txt"; // 本地文件的相对路径或全路径

        PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, new File(localPath));
        PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);
        System.out.println(putObjectResult.getRequestId());
    }
}

以接口的方式上传一个文档到COS,这是腾讯云给的官方实现代码。根据官方代码的信息可以看出我们需要准备以下几个数据:

  1. 身份信息

  1. 存储桶bucket信息

  1. 本地文件的全路径或可访问的相对路径

获取身份信息

步骤2就是获取身份信息的操作

存储桶信息

首先需要创建存储桶,然后拿到创建成功的存储桶的名称和地域。

既可以通过调用API的方式创建,也可以直接在控制台创建。为了简单直观直接在控制台创建,API的方式可以参考官方文档自行实现。

控制台创建存储桶

存储桶的名称和地域信息

上传完成后如何访问

上传完成后在存储桶列表可直接复制文件的访问路径。复制出来的文件url大致是https://YOUR-BUCKET-NAME.cos.YOUR-BUCKET-REGION.myqcloud.com/YOUR-FILENAME

只要固定YOUR-FILENAME之前的域名后续跟上新上传的文件名即可,YOUR-FILENAME就是上面代码中的key的值

访问存储桶文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值