SpringBoot整合腾讯云COS(上传)

这篇具有很好参考价值的文章主要介绍了SpringBoot整合腾讯云COS(上传)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

腾讯云COS文档:对象存储 快速入门-SDK 文档-文档中心-腾讯云 (tencent.com)

开通腾讯云COS

创建存储桶

SpringBoot整合腾讯云COS(上传)

请求域名可做拼接文件访问URL使用

然后下一步即可

SpringBoot整合腾讯云COS(上传)

SpringBoot整合腾讯云COS(上传)

上传文件时需要以上红框参数

导入依赖

<dependency>
       <groupId>com.qcloud</groupId>
       <artifactId>cos_api</artifactId>
       <version>5.6.89</version>
</dependency>

配置文件yml

tencent:
  cos:
    file:
      keyId: keyId
      keySecret: keySecret
      bucketName: ed-1302656006
      regionId: ap-guangzhou
      cosHost: https://{请求域名} #例:https://ed-1302656006.cos.ap-guangzhou.myqcloud.com

配置类

@Component
@ConfigurationProperties(prefix = "tencent.cos.file")
@Data
public class CosConfig {

    private String keyId;
    private String keySecret;
    private String bucketName;
    private String regionId;
    private String cosHost;
}

Controller

实际需分层(service/impl),这里仅为记录

@PutMapping()
public String uploadCosFile(@RequestPart("file") MultipartFile multipartFile) {
    COSClient cosClient = initCosClient();
    // spring直接使用File接收文件传参,会有问题(No primary or single unique constructor found for class java.io.File)不知道具体原因,之后再看。
    // 腾讯云上传方法参数需要File,做一个转换操作
    File file = MultipartFileToFile(multipartFile);
    PutObjectRequest putObjectRequest = new PutObjectRequest(cosConfig.getBucketName(), key, file);
    //对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/images/picture.jpg 中,对象键(key)为 images/picture.jpg
    //如果images文件夹不存在则创建
    cosClient.putObject(putObjectRequest);
    client.shutdown();  // 关闭cos客户端
    //ResponseParam为自定义返回json格式
    return cosConfig.getCosHost() + "/" + key;
}
/**
* 获取腾讯云COS客户端
* @return COSClient
*/
private COSClient initCosClient() {
    COSCredentials cred = new BasicCOSCredentials(cosConfig.getKeyId(), cosConfig.getKeySecret());
    Region region = new Region(cosConfig.getRegionId());
    ClientConfig clientConfig = new ClientConfig(region);
    clientConfig.setHttpProtocol(HttpProtocol.https);
    return new COSClient(cred, clientConfig);
}
/**
* 接口只能接受MultipartFile, 腾讯云需要File
* 故 MultipartFile => File
* @param multiFile 上传文件
* @return file
*/
public static File MultipartFileToFile(MultipartFile multiFile) {
    // 获取文件名
    String fileName = multiFile.getOriginalFilename();
    // 获取文件后缀
    String suffix = fileName.substring(fileName.lastIndexOf("."));
    try {
         // 防止生成的临时文件重复,文件名随机码, UUID
        File file = File.createTempFile(UUID.randomUUID().toString().replaceAll("-", ""), suffix);
        multiFile.transferTo(file);
        return file;
    } catch (Exception e) {
        e.printStackTrace();
        throw new 自定义异常(code, "MultipartFileToFile 文件转换异常");
    }
}

测试

SpringBoot整合腾讯云COS(上传)
可通过该URL访问图片

SpringBoot整合腾讯云COS(上传)文章来源地址https://www.toymoban.com/news/detail-505662.html

到了这里,关于SpringBoot整合腾讯云COS(上传)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • swiftui接入腾讯云对象存储cos

    ​个人来说玩玩,还是用swiftui比较好,毕竟写界面的速度快很多,而且还比较直观。 有部分逻辑需要接入图片上传,因此接入了一下腾讯云对象存储cos。 官网上只有swift的教程,没有swiftui的。记录一下swiftui的接入过程。 一般来说swiftui的app部分是这样的。不过按照教程直接

    2024年02月13日
    浏览(42)
  • 使用uni-file-picker上传文件(图片)到腾讯云存储COS步骤

    微信小程序上传文件到腾讯云存储COS: 准备步骤: 1.拿到腾讯云的API密钥:在API密钥管理中获取SecretId和SecretKey,没有的话生成一个 2.开通COS存储创建存储桶,需要拿到存储桶名字和所在地域 3.打开对象存储的产品文档进入SDK文档里的小程序SDK里面有源码下载地址 主要是为了

    2024年02月07日
    浏览(31)
  • 【golang】go获取腾讯云cos对象存储 并转为base64字符串输出

    需要引入腾讯云cos的sdk https://github.com/tencentyun/cos-go-sdk-v5 配置yaml如下: go代码编写如下:

    2024年02月11日
    浏览(35)
  • springboot集成COS对象存储

    新建密钥(后面配置要用到) 此处使用工具类进行基本属性配置,也可选择在yml中配置

    2024年01月22日
    浏览(48)
  • 腾讯云国际-如何使用对象存储COS在 CKafka 控制台创建数据异步拉取任务?腾讯云代充

    Datahub 支持接入各种数据源产生的不同类型的数据,统一管理,再分发给下游的离线/在线处理平台,构建清晰的数据通道。 本文以 COS 数据为例介绍如何在 CKafka 控制台创建数据异步拉取任务,并对任务进行修改配置,帮助用户更好地了解数据接入功能。 关联unirech注册腾讯云

    2024年02月08日
    浏览(45)
  • 腾讯云COS存储是什么_腾讯云COS有什么用?

    由于这是给新手写的东西,就尽量整得简单易懂些吧。 作为国内第二大的云服务厂商,安全性,可靠性这些东西就不用过多做介绍了(这里并非说他绝对安全,而是比那些小平台的安全性高N个级别) 腾讯云COS与隔壁阿里云的OSS都是提供对象存储的服务,(即文件存储)。比

    2024年02月11日
    浏览(26)
  • 腾讯云存储COS

    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种

    2024年02月12日
    浏览(38)
  • 使用七牛云、阿里云、腾讯云的对象存储上传文件

     说明:存在部分步骤省略的情况,请根据具体文档进行操作  下载相关sdk 表单提交到七牛云 表单提交到阿里云  表单提交到阿里云(sts) 说明:需要修改acl权限,不然无法上传文件 表单提交到腾讯云 表单提交到腾讯云(sts)  参考:  上传策略_使用指南_对象存储 - 七牛开发者

    2024年02月14日
    浏览(37)
  • [php-cos]ThinkPHP项目集成腾讯云储存对象COS

    Cos技术文档 1、安装phpSdk 通过composer的方式安装。 1.1 在composer.json中添加 qcloud/cos-sdk-v5: =2.0 将composer.lock删除,然后运行composer install 就安装成功了。 查看vendor中的是否存在qcloudcos-sdk-v5,安装包中有使用的例子:sample文件夹中。 2、添加配置文件 3、编写cos工具类 测试: pos

    2024年02月15日
    浏览(42)
  • Vue+NodeJS上传图片到腾讯云Cos

    一.前端Vue 1.选择图片 2.实现上传前的本地预览 此时读取后得到的是 后面包含base64,将base64上传到后端进行处理 ,如果图片文件稍大,后端就会出现请求体过长的错误.不适合大文件上传.我们这里就只用它来做本地预览 3.获取上传到后端必须的数据 4.上传图片 二.后端 后续需要的

    2024年02月09日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包