先前使用的是七牛云,是挺好用的,但是七牛对于测试域名有一个月的时间限制。测试域名失效后上传的图片等文件就不能访问了。但是腾讯云每个注册的账户有50G的对象存储的空间。而且没有时间限制。所以就采用腾讯的的对象存储。

具体步骤分为以下三步:

①:将文件上传到tomcat下

②:将上传到tomcat下的文件上传到腾讯云对象存储中

③:解析返回的连接,获得可直接访问的连接地址

第一步:

将文件上传到tomcat下,我把核心代码的贴上。

 // 设置图片名称,不能重复,可以使用uuidString picName = UUID.randomUUID().toString();// 获取文件的原始路径这个文件夹是创建在项目下面的自己手动创建String path = request.getSession().getServletContext().getRealPath("/picture");picName = picName.replaceAll("-", "");// 获取文件名String oriName = pictureFile.getOriginalFilename();// 获取图片后缀String extName = oriName.substring(oriName.lastIndexOf("."));// 整合新的文件名加后缀String newName = "/" + picName + extName;// 上传到服务器上的地址String tomPath = path + newName;// 开始将文件上传到tomcat的文件目录下pictureFile.transferTo(new File(path + "/" + newName));

具体的参见上传资源。

第二步:最重要的部分

将在tomcat下的文件上传到腾讯云上。

引入依赖:(此方法必须使用此依赖)

/*** 特别注意:此版本代码必须使用此依赖 * <!-- 腾讯云上传依赖 --> * <dependency> *   <groupId>com.qcloud</groupId>*    <artifactId>cos_api</artifactId> *   <version>5.2.4</version> * </dependency>* <dependency> *   <groupId>com.qcloud</groupId>*    <artifactId>qcloud-java-sdk</artifactId>*   <version>2.0.1</version>* </dependency>**/

核心代码:

// 直接传一个路径进来就好啦File cosFile = new File(tomPath);// 将密钥配置进去COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);// 2 设置bucket的区域, COS地域的简称请参照ClientConfig clientConfig = new ClientConfig(new Region("ap-guangzhou"));// 3 获得cos客户端COSClient cosClient = new COSClient(cred, clientConfig); //这个需要根据的自己的服务器的情况配置String bucketName = "XXXXXXXXXX";// 设置上传文件的存储位置String key = "image/" + cosFile.getName();// 简单文件上传, 最大支持 5 GB, 适用于小文件上传, 建议 20 M 以下的文件使用该接口// 大文件上传请参照 API 文档高级 API 上传// 指定要上传到 COS 上的路径PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, cosFile);cosClient.putObject(putObjectRequest);// 关闭客户端cosClient.shutdown();Date expiration = new Date(new Date().getTime() + 5 * 60 * 10000);URL oldurl = cosClient.generatePresignedUrl(bucketName, key, expiration);// 获得链接后解析字符串并且返回// 先将url转换为字符串第三步:获得上传后的文件的链接String url = oldurl.toString();// 直接查找到第一个?的位置url = url.substring(0, url.indexOf("?"));// 开始解析字符串return url;

至此文件的上传到腾讯上就完成啦。

下面是我写的完整的代码:仅供参考。

package com.hsd.tx.util;import java.io.File;
import java.net.URL;
import java.util.Date;
import java.util.UUID;import javax.servlet.http.HttpServletRequest;import org.springframework.web.multipart.MultipartFile;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.region.Region;/*** @ClassName: TxFileUploadUtil* @Description: 腾讯云图片上传的工具类* @date 2019年1月19日 下午3:46:36* @author lpjz@foxmail.com* */
/*** 特别注意:此版本代码必须使用此依赖 * <!-- 腾讯云上传依赖 --> * <dependency> *   <groupId>com.qcloud</groupId>*    <artifactId>cos_api</artifactId> *   <version>5.2.4</version> * </dependency>* <dependency> *   <groupId>com.qcloud</groupId>*    <artifactId>qcloud-java-sdk</artifactId>*   <version>2.0.1</version>* </dependency>**/
// 这个方法是专门用来上传SSM框架下的文件的
// 前提条件是:①:在requestMapper的方法中必须接收HttpServletRequest,MultipartFile作为参数,然后传入此方法中
public class TxFileUploadUtil {//根据自己实际情况去配置private static String secretId = "XXXXXXXXXXXXXXXXX";private static String secretKey = "XXXXXXXXXXXXXXXXX";public static String upLoadSSM(HttpServletRequest request, MultipartFile pictureFile) throws Exception {// 设置图片名称,不能重复,可以使用uuidString picName = UUID.randomUUID().toString();// 获取文件的原始路径这个文件夹是创建在项目下面的自己手动创建String path = request.getSession().getServletContext().getRealPath("/picture");picName = picName.replaceAll("-", "");// 获取文件名String oriName = pictureFile.getOriginalFilename();// 获取图片后缀String extName = oriName.substring(oriName.lastIndexOf("."));// 整合新的文件名加后缀String newName = "/" + picName + extName;// 上传到服务器上的地址String tomPath = path + newName;// 开始将文件上传到tomcat的文件目录下pictureFile.transferTo(new File(path + "/" + newName));// 直接传一个路径进来就好啦File cosFile = new File(tomPath);// 将密钥配置进去COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);// 2 设置bucket的区域, COS地域的简称请参照具体情况;希望引用的时候注意ClientConfig clientConfig = new ClientConfig(new Region("XXXXXXX"));// 3 获得cos客户端COSClient cosClient = new COSClient(cred, clientConfig);//在腾讯上创建的桶的名称String bucketName = "XXXXXXX";// 设置上传文件的存储位置String key = "image/" + cosFile.getName();// 简单文件上传, 最大支持 5 GB, 适用于小文件上传, 建议 20 M 以下的文件使用该接口// 大文件上传请参照 API 文档高级 API 上传// 指定要上传到 COS 上的路径PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, cosFile);cosClient.putObject(putObjectRequest);// 关闭客户端cosClient.shutdown();Date expiration = new Date(new Date().getTime() + 5 * 60 * 10000);URL oldurl = cosClient.generatePresignedUrl(bucketName, key, expiration);// 获得链接后解析字符串并且返回// 先将url转换为字符串String url = oldurl.toString();// 直接查找到第一个?的位置url = url.substring(0, url.indexOf("?"));// 开始解析字符串return url;}// 如果是采用其他的方式添加文件则采用此方法public static String upLoad(String tomPath) throws Exception {File cosFile = new File(tomPath);// 将密钥配置进去COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);// 2 设置bucket的区域, COS地域的简称请参照ClientConfig clientConfig = new ClientConfig(new Region("ap-guangzhou"));// 3 获得cos客户端COSClient cosClient = new COSClient(cred, clientConfig);String bucketName = "jobpic-1258185724";// 设置上传文件的存储位置String key = "image/" + cosFile.getName();// 简单文件上传, 最大支持 5 GB, 适用于小文件上传, 建议 20 M 以下的文件使用该接口// 大文件上传请参照 API 文档高级 API 上传// 指定要上传到 COS 上的路径PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, cosFile);cosClient.putObject(putObjectRequest);// 关闭客户端cosClient.shutdown();Date expiration = new Date(new Date().getTime() + 5 * 60 * 10000);URL oldurl = cosClient.generatePresignedUrl(bucketName, key, expiration);// 获得链接后解析字符串并且返回// 先将url转换为字符串String url = oldurl.toString();// 直接查找到第一个?的位置url = url.substring(0, url.indexOf("?"));// 开始解析字符串return url;}
}

腾讯云对象存储的完整教程,java将文件上传到腾讯云上后返回可以访问的连接相关推荐

  1. 基于腾讯COS对象存储SDK使用Python编写的文件上传工具第二版

    更多技术文章请访问我的个人博客http://www.rain1024.com NR-TCloud 1.1,更新于2017-02-08 更新说明: 第一版上传时需要将upload.pyc复制到要上传对象 ...

  2. 上传文件到云服务器存储路径,配置WordPress上传图片/附件文件同步到UPYUN又拍云存储...

    这几天笔者一直在折腾UPYUN又拍云存储相关的问题且整理到不少的基础文章,昨天已经创建且绑定域名,并且又拍云还支持一键快速配置SSL证书.对于一般的站长而言,我们希望网站速度打开快一些,这样用户体验会 ...

  3. 硅谷课堂 06_整合腾讯云对象存储和课程分类管理

    硅谷课堂第六天-整合腾讯云对象存储和课程分类管理 文章目录 硅谷课堂第六天-整合腾讯云对象存储和课程分类管理 一.讲师管理模块整合腾讯云对象存储 1.腾讯云对象存储介绍 1.1.开通"对象存 ...

  4. 腾讯云对象存储cos使用

    腾讯云对象存储cos使用 一.新建密钥 1.登录腾讯云进入控制台 2.新建密钥 二.创建对象存储 1.进入对象存储,并创建存储桶 三.创建项目 pom文件 yml文件 创建一util层 control ...

  5. 硅谷课堂第五课-腾讯云对象存储和课程分类管理

    硅谷课堂第六天-整合腾讯云对象存储和课程分类管理 文章目录 硅谷课堂第六天-整合腾讯云对象存储和课程分类管理 一.讲师管理模块整合腾讯云对象存储 1.腾讯云对象存储介绍 1.1.开通"对象存 ...

  6. 如何结合PICgo,Typora以及阿里云对象存储OSS搭建自己图床写博客

    如何利用阿里云对象存储OSS搭建自己图床写博客 1.购买阿里云 购买链接 登录阿里云–>控制台–>对象存储OSS–购买 购买的时候可以选择按月付费一月一元的,也可以年费9元的,40GB作为 ...

  7. 阿里云对象存储OSS入门使用

    阿里云对象存储OSS入门使用 数据,文件的存储: 数据(MySQL) 数据(MySQL)+ 文件(本地:IO流) 数据(MySQL)+ 缓存(Redis)+文件(服务器集群上,fastDFS(集群), ...

  8. 史上最完整Java中将File转化为MultipartFile的方法(附阿里云腾讯云对象存储API对照)

    业务中需要调用别人提供的接口进行文件上传,但别人的接口只能上传MultipartFile类型的文件(吐槽一下,也不知道是哪个二货设计的这种接口).所以需要在我们的业务代码中将File转化为Multip ...

  9. 腾讯云cos html,腾讯云对象存储(COS)插件安装设置图文教程

    腾讯云对象存储(COS)插件是腾讯云官方开发的针对在 wordpress中使用腾讯云对象存储cos的用户开发的辅助插件.通过在 wordpress程序中安装插件的方式,很方便的把WordPress静态 ...

最新文章

  1. [你必须知道的.NET]第二十一回:认识全面的null
  2. Spark MLlib 机器学习
  3. 使用jQuery的attr方法来修改onclick值
  4. torch_geometric 笔记:global_mean_pool
  5. Consul负载均衡策略
  6. 886 微型计算机原理,886微型计算机原理及应用.pdf
  7. MVVM架构~knockoutjs系列之包括区域级联列表的增删改
  8. 不相交集类及其应用生成迷宫
  9. Jetty 与 Tomcat
  10. 数据库服务器主机重启故障诊断分析
  11. 学习笔记-小甲鱼Python3学习第二十三、二十四讲:函数:这帮小兔崽子、汉诺塔...
  12. 计算机视觉可分计算成像学()五大类,中国大学 MOOC_化工过程与控制仿真实习_期末考试选修课答案...
  13. 浏览器 pad android,360安全浏览器平板电脑Pad专用版-360安全浏览器HD 安卓版v1.1.0-PC6安卓网...
  14. android 移动网络定位服务器地址,安卓定位方式全总结-gps定位,network定位,ip定位,基站定位...
  15. linux-uboot 移植四 uboot的移植
  16. iPhone设备上安装beta版本系统,在浏览器中搜索网址 beta.apple.com
  17. VS 2010 与 VS 2008的区别
  18. 累死你的不是工作是工作方式 好的团队会教你如何工作
  19. 全球与中国丁苯乳胶市场应用前景及营销渠道分析报告2021~2026年
  20. linux查看端口pvid,交换机端口及常见问题定位(二)

热门文章

  1. 关于ModbusTCP通讯汇川PLC
  2. 全网最新-扶风视频解析计费系统,2022优化免授权版(赠接口轮询插件)
  3. GO语言-数据结构-队列
  4. java网课|Scanner
  5. 【MikTe安装】最新的MiKTeX替换CTEX默认安装的MiKTeX
  6. Miktex2.9使用Wondows系统字体相关设置
  7. php批量添加水印图片大小,解析php中两种缩放图片的函数,为图片添加水印
  8. Pyecharts--第一个培训数据dashboard(不太完美)
  9. 【腾讯Bugly干货分享】从0到1打造直播 App
  10. 多事之秋----为什么受伤又是华为