分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

上传文件到阿里云OSS对象存储,查询访问地址,删除文件

发布时间:2023-09-06 02:12责任编辑:郭大石关键词:暂无标签

一:pom添加以来jar

 ???<dependency> ???????<groupId>com.aliyun.oss</groupId> ???????<artifactId>aliyun-sdk-oss</artifactId> ???????<version>2.8.3</version> ???</dependency>

  当然,也能下载jar导入项目;

二:关于文件上传的参数配置

新建 properties文件

三:在业务逻辑层获取阿里云对象

  1:先获取属性文件

final static String endpoint = OssUtil.getConfig("contract"); ???final static String accessKeyId = OssUtil.getConfig("accessKeyIdContract"); ???final static String accessKeySecret = OssUtil.getConfig("accessKeySecretContract"); ???final static String bucketName = OssUtil.getConfig("bucketName4C");

  2:属性文件的读取方法;

  

public class OssUtil { ???protected static Logger logger = LogManager.getLogger(OssUtil.class); ???public static String getConfig(String key) { ???????String value = ""; ???????OssUtil propertiesUtil = new OssUtil(); ???????InputStream in = null; ???????Properties props = new Properties(); ???????in = propertiesUtil.getClass().getResourceAsStream("/oss.properties"); ???????try { ???????????props.load(in); ???????} catch (IOException e) { ???????????e.printStackTrace(); ???????????logger.error("getConfig io error:", e); ???????} finally { ???????????if (in != null) { ???????????????try { ???????????????????in.close(); ???????????????} catch (IOException e2) { ???????????????????e2.printStackTrace(); ???????????????????logger.error("close io error:", e2); ???????????????} ???????????} ???????} ???????value = props.getProperty(key); ???????logger.info("property info :" + key + ":" + value); ???????System.out.println(value); ???????return value; ???} ???}

四:判断你要上传的文件是不是存在

@Override ???public boolean existFileInOss(String fileName) { ???????// TODO Auto-generated method stub ???????// 创建OSSClient实例 ???????OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret); ???????// Object是否存在 ???????boolean found = ossClient.doesObjectExist(bucketName, fileName); ???????// 关闭client ???????ossClient.shutdown(); ???????return found; ???}

五:上传方法

 ???@Override ???public void uploadFile(MultipartFile file,String fileId) { ???????//String fileName =file.getOriginalFilename(); ????????// 创建OSSClient实例 ???????OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret); ???????// 上传文件流 ???????try { ???????????ossClient.putObject(bucketName, fileId, file.getInputStream()); ???????} catch (OSSException e) { ???????????e.printStackTrace(); ???????} catch (ClientException e) { ???????????e.printStackTrace(); ???????} catch (IOException e) { ???????????e.printStackTrace(); ???????} ???????// 关闭client ???????ossClient.shutdown(); ???}

六:获取文件访问地址

@Override ???public String getFileUrl(String fileId) { ???????//服务器端生成url签名字串 ???????OSSClient Server ?= new OSSClient(endpoint, ?accessKeyId, accessKeySecret); ???????Date expiration = null; ???????expiration = new Date(System.currentTimeMillis()+1800000); ???????//logger.debug("请求的fileid: " + fileId); ???????GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, fileId, HttpMethod.GET); ???????//设置过期时间 ???????request.setExpiration(expiration); ???????// 生成URL签名(HTTP GET请求) ???????URL signedUrl = Server.generatePresignedUrl(request); ???????//logger.debug("oss文件url: " + signedUrl); ???????return signedUrl.toString(); ???}

七:删除文件

// 删除文件 ???????//ossClient.deleteObject(bucketName, "文件的全路径,如:cia/merged.pdf"); ?

八:控制台接收文件,调用业务层

public @ResponseBody String Upload(HttpServletRequest request, HttpServletResponse response, ???????????BsPayBussiness bussinessm, @RequestParam("file") MultipartFile file) {}

  

上传文件到阿里云OSS对象存储,查询访问地址,删除文件

原文地址:https://www.cnblogs.com/GH0522/p/9567150.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved