1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 上传文件到阿里云OSS对象存储 查询访问地址 删除文件

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

时间:2020-11-27 21:09:50

相关推荐

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

一: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;}}

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

@Overridepublic 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;}

五:上传方法

@Overridepublic 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();}

六:获取文件访问地址

@Overridepublic 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) {}

欢迎大家一起说出自己的想法。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。