当前位置: 首页 > news >正文

郑州网站设计有哪些小程序设计要多少钱

郑州网站设计有哪些,小程序设计要多少钱,建设网站商城需要多少费用,wordpress喜欢 赏 分享接上文#xff08;亲测有效#xff09;SpringBoot项目集成腾讯云COS对象存储#xff08;1#xff09;-CSDN博客 目录 3、通用能力类 文件下载 测试 3、通用能力类 文件下载 官方文档介绍了2种文件下载方式。一种是直接下载 COS 的文件到后端服务器#xff08;适合服务… 接上文亲测有效SpringBoot项目集成腾讯云COS对象存储1-CSDN博客 目录 3、通用能力类 文件下载 测试 3、通用能力类 文件下载 官方文档介绍了2种文件下载方式。一种是直接下载 COS 的文件到后端服务器适合服务器端处理文件另一种是获取到文件下载输入流适合返回给前端用户。 参考官方文档 · https://cloud.tencent.com/document/product/436/65937 · https://cloud.tencent.com/document/product/436/10199#.E4.B8.8B.E8.BD.BD.E5.AF.B9.E8.B1.A1 其实还有第三种下载方式”直接通过路径链接访问适用于单一的、可以被用户公开访问的资源比如用户头像、代码生成器文件。 但是对于代码生成器产物包文件更建议通过后端服务器从COS下载文件并返回给前端这样可以在后端限制只有登录用户才能下载。 1首先在 CosManager 中新增对象下载方法getObject()根据对象的 key 获取存储信息. import com.qcloud.cos.COSClient; import com.qcloud.cos.model.COSObject; import com.qcloud.cos.model.GetObjectRequest; import com.qcloud.cos.model.PutObjectRequest; import com.qcloud.cos.model.PutObjectResult; import com.waterai.water.config.CosClientConfig; import java.io.File; import javax.annotation.Resource; import org.springframework.stereotype.Component;/*** Cos 对象存储操作*/ Component public class CosManager {Resourceprivate CosClientConfig cosClientConfig;Resourceprivate COSClient cosClient;/*** 上传对象* param key 唯一键* param localFilePath 本地文件路径* return*/public PutObjectResult putObject(String key, String localFilePath) {PutObjectRequest putObjectRequest new PutObjectRequest(cosClientConfig.getBucket(), key, new File(localFilePath));return cosClient.putObject(putObjectRequest);}/*** 上传对象* param key 唯一键* param file 文件* return*/public PutObjectResult putObject(String key, File file) {PutObjectRequest putObjectRequest new PutObjectRequest(cosClientConfig.getBucket(), key, file);return cosClient.putObject(putObjectRequest);}/** 下载对象* param key 唯一键* return* */public COSObject getObject(String key) {GetObjectRequest getObjectRequest new GetObjectRequest(cosClientConfig.getBucket(), key);return cosClient.getObject(getObjectRequest);} } 测试 1为了方便测试在 FileController 中编写测试文件下载接口。 核心流程是根据路径获取到COS 文件对象然后将文件对象转换为文件流并写入到 Servlet的Response 对象中。 注意要设置文件下载专属的响应头。同上测试接口一定要加上管理员权限防止任何用户随意上传文件。 测试文件下载接口代码如下 import cn.hutool.core.io.FileUtil; import com.waterai.water.annotation.AuthCheck; import com.waterai.water.common.BaseResponse; import com.waterai.water.common.ErrorCode; import com.waterai.water.common.ResultUtils; import com.waterai.water.constant.FileConstant; import com.waterai.water.constant.UserConstant; import com.waterai.water.exception.BusinessException; import com.waterai.water.manager.CosManager; import com.waterai.water.model.dto.file.UploadFileRequest; import com.waterai.water.model.entity.User; import com.waterai.water.model.enums.FileUploadBizEnum; import com.waterai.water.service.UserService; import java.io.File; import java.util.Arrays; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.RandomStringUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile;/*** 文件接口*/ RestController RequestMapping(/file) Slf4j public class FileController {Resourceprivate UserService userService;Resourceprivate CosManager cosManager;/** 其他方法。。。。。* *//** 测试文件上传* */AuthCheck(mustRole UserConstant.ADMIN_ROLE)PostMapping(/test/upload)public BaseResponseString testUploadFile(RequestPart(file) MultipartFile multipartFile) {// 文件目录String filename multipartFile.getOriginalFilename();String filepath String.format(/test/%s, filename);File file null;try {//上传文件file File.createTempFile(filepath, null);multipartFile.transferTo(file);cosManager.putObject(filepath, file);//返回可访问地址return ResultUtils.success(filepath);} catch (Exception e) {System.out.println(file upload error, filepath filepath , error e);throw new BusinessException(ErrorCode.SYSTEM_ERROR, 上传失败);} finally {if (file ! null) {//删除临时文件boolean delete file.delete();if (!delete) System.out.println(file delete error, filepath [l filepath);}}}/** 测试文件下载*/AuthCheck (mustRole UserConstant.ADMIN_ROLE)GetMapping(/test/download/)public void testDownloadFile(String filepath, HttpServletResponse response) throws IOException {COSObjectInputStream cosObjectInput null;try {COSObject cosObject cosManager.getObject(filepath);cosObjectInput cosObject.getObjectContent();//处理下载到的流byte[] bytes IOUtils.toByteArray(cosObjectInput);//设置响应头response.setContentType(application/octet-stream;charsetUTF-8);response.setHeader(Content-Disposition, attachment; filename filepath);//写入响应response.getOutputStream().write(bytes);response.getOutputStream().flush();} catch (Exception e) {log.error(file download error, filepath filepath, e);throw new BusinessException(ErrorCode.SYSTEM_ERROR, 下载失败);} finally {if (cosObjectInput ! null) cosObjectInput.close();}} }2修改启动配置李的active profiles使用local配置启动项。 然后点击启动按钮启动项目。 3打开 Swagger接口文档此处我的项目端口是8101因此就是http://localhost:8101/api/doc.html然后在file-controller中找到测试文件上传的这个接口开始进行测试。 首先点击选择文件从本地选择一个文件然后点击发送请求。 就可以看到5.jpg这个文件下载的请求返回成功了。没报错但就是不知道为什么图片不显示。 至此后端操作对象存储的代码已编写完成。
http://www.w-s-a.com/news/441392/

相关文章:

  • 杭州网站推广与优化凡科网是免费的吗
  • 公司网站的重要性门户网站推广介绍方案
  • 做金融网站看那些素材江门网红打卡景点蓬江区
  • 饮食网站模板建网站中企动力优
  • 郑州 制造 网站东平企业建站公司
  • 天津设计师网站大全展示型网站搭建
  • 南宁网站建设 传导网站开发平台开发公司
  • 网站建设好处上海建设工程网站
  • 黑河哈尔滨网站建设太原网站制作定制开发
  • 建站做网站香河住房与建设局网站
  • 如何制造一个网站域名分类网站
  • 解析视频的网站怎么做凡科网快图
  • 企业网站优化问题接单app平台有哪些
  • 怎么做网站后缀识别符号才不会变什么是电子商务网站建设
  • 中山 五金 骏域网站建设专家专门用来制作网页的软件是什么
  • 怎么做刷东西的网站数据分析软件工具有哪些
  • 官方购物网站正品交易网站域名
  • lol网站建设seo 网站太小
  • 网站建设销售职责手机网站制作软件
  • 福州百度企业网站seo如何在电脑上登录wordpress
  • 开发区全力做好网站建设网络广告营销成功案例
  • 114网站建设高并发系统架构
  • php网站打开一片空白wordpress中文广告插件下载
  • 怎样建自己的网站免费的百度关键词排名点击
  • 医院网站建设的特点怎么查看网站百度快照
  • 网站 如何备案一般网站开发公司
  • 做网站的公司 贵阳郑州新像素ui设计培训收费
  • 温州网站建设公司电话给个免费的网址
  • 个人做电子商务网站备案软考高级
  • 淘宝客需要自己做网站吗四川遂宁做网站的公司