设为首页 加入收藏

TOP

springboot阿里云oss工具类(四)
2023-07-25 21:33:44 】 浏览:113
Tags:springboot oss
以正斜线结尾 如:"exampledir/"。 * @param multipartFile multipartFile * @return */ @SneakyThrows public static String upload(String folder, MultipartFile multipartFile) { InputStream inputStream = null; OSS ossClient = new OSSClientBuilder().build(aliYunOSSUtil.ossConfig.getEndpoint(), aliYunOSSUtil.ossConfig.getAccessKeyId(), aliYunOSSUtil.ossConfig.getAccessKeySecret()); String url = ""; try { inputStream = multipartFile.getInputStream(); String fileName = multipartFile.getOriginalFilename(); String uuid = UUID.randomUUID().toString().replaceAll("-", ""); ObjectMetadata metadata = new ObjectMetadata(); int indexOfLastDot = fileName.lastIndexOf("."); String suffix = fileName.substring(indexOfLastDot); fileName = uuid + suffix; String datePath = DateTimeFormatter.ISO_DATE.format(LocalDate.now()); // 拼接fileName , 文件夹1/文件夹2/文件名.jpg fileName = folder + datePath + "/" + fileName; metadata.setContentType(getContentType(suffix)); PutObjectRequest putObjectRequest = new PutObjectRequest(aliYunOSSUtil.ossConfig.getBucket(), fileName, inputStream); //设置ContentType,预览 putObjectRequest.setMetadata(metadata); ossClient.putObject(putObjectRequest); url = "https://" + aliYunOSSUtil.ossConfig.getBucket() + "." + aliYunOSSUtil.ossConfig.getEndpoint() + "/" + fileName; } catch (OSSException oe) { logger.error("请求已发送到OSS,但由于某种原因被拒绝并出现错误响应"); logger.error("Error Message:[{}]", oe.getErrorMessage()); logger.error("Error Code:[{}]", oe.getErrorCode()); logger.error("Request ID:[{}]", oe.getRequestId()); logger.error("Host ID:[{}]", oe.getHostId()); } catch (ClientException ce) { logger.error("客户端在尝试与OSS通信时遇到问题"); logger.error("Error Message:[{}]", ce.getMessage()); } finally { if (ossClient != null) { ossClient.shutdown(); } } return url; } /** * 判断类型 * @param suffix 文件后缀 * @return */ private static String getContentType(String suffix) { if (suffix.equalsIgnoreCase(".bmp")) { return "image/bmp"; } if (suffix.equalsIgnoreCase(".gif")) { return "image/gif"; } if (suffix.equalsIgnoreCase(".jpeg") || suffix.equalsIgnoreCase(".jpg") || suffix.equalsIgnoreCase(".png") ) { return "image/jpg"; } return "image/jpg"; } /** * 列举 指定路径下所有的文件的文件名 * 如果要列出根路径下的所有文件,path= "" * * @param path * @return */ public static List<String> listFileName(String path) { List<String> list = new ArrayList<>(); // 创建OSSClient实例。 OSS ossClient = new OSSClientBuilder().build(aliYunOSSUtil.ossConfig.getEndpoint() , aliYunOSSUtil.ossConfig.getAccessKeyId() , aliYunOSSUtil.ossConfig.getAccessKeySecret()); try { // 设置最大个数。 final int maxKeys = 300; // 构造ListObjectsRequest请求。 ListObjectsRequest listObjectsRequest = new ListObjectsRequest(aliYunOSSUtil.ossConfig.getBucket()); // 设置prefix参数来获取path目录下的所有文件。 listObjectsRequest.setPrefix(path); listObjectsRequest.setMaxKeys(maxKeys); // 列举文件。 ObjectListing objectListing = ossClient.listObjects(listObjectsRequest); List<OSSObjectSummary> objectSumm
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 4/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇java基础篇——流程控制 下一篇JSP利用AJAX实现页面即时校验验证..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目