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

大学里读网站建设制作移动网站公司

大学里读网站建设,制作移动网站公司,企业网站icp备案,怎么在阿里巴巴网站做公司名称文章目录 springboot整合七牛云oss操作文件核心代码(记得修改application.yml配置参数⭐)maven依赖QiniuOssProperties配置类UploadControllerResponseResult统一封装响应结果ResponseType响应类型枚举OssUploadService接口QiniuOssUploadServiceImpl实现…

文章目录

    • springboot整合七牛云oss操作文件
      • 核心代码(记得修改application.yml配置参数⭐)
        • maven依赖
        • QiniuOssProperties配置类
        • UploadController
        • ResponseResult统一封装响应结果
        • ResponseType响应类型枚举
        • OssUploadService接口
        • QiniuOssUploadServiceImpl实现类
        • QiniuOssApplication启动类
        • application.yml
      • 文件/图片上传(数据流方式上传)⭐
        • 获取accessKey和secretKey配置内容
        • 创建一个存储空间和获取bucket(存储空间名称)、服务器域名
      • 文件删除⭐

springboot整合七牛云oss操作文件

核心代码(记得修改application.yml配置参数⭐)

maven依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>qiniuOss</artifactId><version>1.0-SNAPSHOT</version><properties><!--        springboot版本--><spring-boot.version>2.7.2</spring-boot.version><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><!--实现自定义的properties(@ConfigurationProperties注解下的内容)可以在application.yml出现提示。导入了这个依赖,当我们运行项目后就会在target目录下面自动生成/META-INF/spring-configuration-metadata.json文件--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><!--        springboot-web--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--        String工具类包 --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.12.0</version></dependency><!--        lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version></dependency>
<!--        七牛云oss sdk--><dependency><groupId>com.qiniu</groupId><artifactId>qiniu-java-sdk</artifactId><version>[7.7.0, 7.10.99]</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.5</version><scope>compile</scope></dependency></dependencies></project>
QiniuOssProperties配置类
package com.boot.config;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Component;/*** 七牛云oss配置类* @author youzhengjie 2022-10-07 18:07:19*/
@Component
@Data
@ConfigurationProperties(prefix = "qiniu")
@EnableConfigurationProperties({QiniuOssProperties.class
})
public class QiniuOssProperties {/*** 下面的AK、SK都要从七牛云的密钥管理中获取*/private String accessKey;private String secretKey;/*** 指定存储空间名称*/private String bucket;/*** 七牛云图片服务器域名(有效期30天,过期可以重新创建新的存储空间)*/private String ossUrl;
}
UploadController
package com.boot.controller;import com.boot.data.ResponseResult;
import com.boot.service.OssUploadService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;/*** @author youzhengjie 2022-10-07 18:08:18*/
@RestController
public class UploadController {@Autowired@Qualifier("qiniuOssUploadServiceImpl") //指定spring注入的实现类为七牛云oss实现类private OssUploadService ossUploadService;/*** 图片上传* @param imageFile* @return*/@PostMapping(path = "/imageUpload")public ResponseResult imageUpload(MultipartFile imageFile){return ossUploadService.imageUpload(imageFile);}/*** 文件删除* @return*/@DeleteMapping(path = "/fileDelete")public ResponseResult fileDelete(String fileFullName){return ossUploadService.fileDelete(fileFullName);}}
ResponseResult统一封装响应结果
package com.boot.data;import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;/*** 统一响应结果*/
@JsonInclude(JsonInclude.Include.NON_NULL) //为null的字段不进行序列化
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ResponseResult<T> {/*** 响应状态码*/private Integer code;/*** 响应状态码对应的信息提示*/private String msg;/*** 返回给前端的数据*/private T data;public ResponseResult(Integer code, String msg) {this.code = code;this.msg = msg;}public ResponseResult(Integer code, T data) {this.code = code;this.data = data;}}
ResponseType响应类型枚举
package com.boot.enums;/*** 响应类型枚举类* @author youzhengjie 2022-09-22 22:47:21*/
public enum ResponseType {/*** 响应类型*/IMAGE_UPLOAD_SUCCESS(901,"图片上传成功"),IMAGE_UPLOAD_ERROR(902,"图片上传失败"),FILE_FORMAT_UNSUPPORT(903,"不支持该文件格式,上传失败"),FILE_DELETE_SUCCESS(904,"文件删除成功"),FILE_DELETE_ERROR(905,"文件删除失败"),;private int code;private String message;ResponseType(int code, String message) {this.code = code;this.message = message;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}
}
OssUploadService接口
package com.boot.service;import com.boot.data.ResponseResult;
import com.boot.enums.ResponseType;
import org.springframework.web.multipart.MultipartFile;/*** oss上传service接口* @author youzhengjie 2022-10-06 23:13:28*/
public interface OssUploadService {/*** oss图片上传* @param imageFile* @return 上传结果*/ResponseResult imageUpload(MultipartFile imageFile);/*** oss文件删除* @param fileFullName 文件全名,也就是下面这个代码生成的名字(记住不要加上域名),例如:*         String newFileName = new StringBuilder()*                 .append(fileDir)*                 .append(uuidFileName)*                 .append(fileSuffix).toString();** @return 删除结果*/ResponseResult fileDelete(String fileFullName);}
QiniuOssUploadServiceImpl实现类
package com.boot.service.impl;import com.boot.config.QiniuOssProperties;
import com.boot.data.ResponseResult;
import com.boot.enums.ResponseType;
import com.boot.service.OssUploadService;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.Region;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.FileInfo;
import com.qiniu.util.Auth;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;/*** 七牛云oss文件上传实现类* @author youzhengjie 2022-10-06 23:14:17*/
@Service("qiniuOssUploadServiceImpl")
@Slf4j
public class QiniuOssUploadServiceImpl implements OssUploadService {@Autowiredprivate QiniuOssProperties qiniuOssProperties;/*** 检查文件是否是图片类型* @param originalFilename* @return true代表是图片,false则不是图片*/private boolean isImage(String originalFilename){//将文件名全部变小写String lowerOriginalFilename = originalFilename.toLowerCase();return lowerOriginalFilename.endsWith(".jpg") ||lowerOriginalFilename.endsWith(".png") ||lowerOriginalFilename.endsWith(".jpeg");}@Overridepublic ResponseResult imageUpload(MultipartFile imageFile) {//获取上传前的文件原名String oldFileName = imageFile.getOriginalFilename();//封装响应结果ResponseResult<Object> result = new ResponseResult<>();//如果不是图片则直接返回if(!isImage(oldFileName)){result.setCode(ResponseType.FILE_FORMAT_UNSUPPORT.getCode());result.setMsg(ResponseType.FILE_FORMAT_UNSUPPORT.getMessage());return result;}//构造一个带指定自动的Region对象的配置类Configuration cfg = new Configuration(Region.autoRegion());cfg.resumableUploadAPIVersion = Configuration.ResumableUploadAPIVersion.V2;// 指定分片上传版本UploadManager uploadManager = new UploadManager(cfg);//以日期作为目录,每一天的图片都会放到不同的目录下,方便管理SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd/");String fileDir = simpleDateFormat.format(new Date());//UUID文件名String uuidFileName = UUID.randomUUID().toString().replaceAll("-", "");//获取文件后缀名 .jpgString fileSuffix= oldFileName.substring(oldFileName.lastIndexOf("."));//上传到oss中的新的图片文件名String newFileName = new StringBuilder().append(fileDir).append(uuidFileName).append(fileSuffix).toString();try {//获取前端传来的文件流InputStream inputStream = imageFile.getInputStream();Auth auth = Auth.create(qiniuOssProperties.getAccessKey(), qiniuOssProperties.getSecretKey());String upToken = auth.uploadToken(qiniuOssProperties.getBucket());//七牛云oss上传文件的核心方法Response response = uploadManager.put(inputStream,newFileName,upToken,null, null);result.setCode(ResponseType.IMAGE_UPLOAD_SUCCESS.getCode());result.setMsg(ResponseType.IMAGE_UPLOAD_SUCCESS.getMessage());//返回一个外面可以访问的图片地址。拼接域名+新的图片全路径,这样我们通过这个路径就可以直接在外面访问图片了result.setData(qiniuOssProperties.getOssUrl()+newFileName);return result;}catch (Exception e){e.printStackTrace();result.setCode(ResponseType.IMAGE_UPLOAD_ERROR.getCode());result.setMsg(ResponseType.IMAGE_UPLOAD_ERROR.getMessage());return result;}}/*** 七牛云oss文件删除* @param fileFullName 文件全名,也就是下面这个代码生成的名字(记住不要加上域名):*         String newFileName = new StringBuilder()*                 .append(fileDir)*                 .append(uuidFileName)*                 .append(fileSuffix).toString();* @return 删除结果*/@Overridepublic ResponseResult fileDelete(String fileFullName) {//封装响应结果ResponseResult<Object> result = new ResponseResult<>();//构造一个带指定 Region 对象的配置类Configuration cfg = new Configuration(Region.autoRegion());Auth auth = Auth.create(qiniuOssProperties.getAccessKey(), qiniuOssProperties.getSecretKey());BucketManager bucketManager = new BucketManager(auth, cfg);try {//七牛云oss文件删除核心方法Response response = bucketManager.delete(qiniuOssProperties.getBucket(), fileFullName);result.setCode(ResponseType.FILE_DELETE_SUCCESS.getCode());result.setMsg(ResponseType.FILE_DELETE_SUCCESS.getMessage());return result;} catch (QiniuException ex) {ex.printStackTrace();result.setCode(ResponseType.FILE_DELETE_ERROR.getCode());result.setMsg(ResponseType.FILE_DELETE_ERROR.getMessage());return result;}}
}
QiniuOssApplication启动类
package com.boot;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class QiniuOssApplication {public static void main(String[] args) {SpringApplication.run(QiniuOssApplication.class,args);}}
application.yml
server:port: 8231
spring:servlet:#文件上传配置multipart:max-file-size: 3MBmax-request-size: 6MB#七牛云oss配置
qiniu:# 密钥管理的AKaccessKey: xPu-62ptMpg-kolm4nPVcvWgUnK1EZgu27ffKpBE#密钥管理的SKsecretKey: gDxkqTu7i7BBgbsvoQ7h4bmE5m16aRyHXyQ1Zc6D#指定我们文件上传的存储空间名称bucket: java-qiniu# 七牛云图片服务器域名(有效期30天,过期可以重新创建新的存储空间)ossUrl: http://rjc4vwz0g.hn-bkt.clouddn.com/

文件/图片上传(数据流方式上传)⭐

获取accessKey和secretKey配置内容
  • 登录七牛云并进入下面的网址:

七牛云网址

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

创建一个存储空间和获取bucket(存储空间名称)、服务器域名
  • 1:进入七牛云控制面板:

七牛云网址

  • 2:创建新的存储空间:

在这里插入图片描述
在这里插入图片描述

  • 3:查看刚刚创建的存储空间:

在这里插入图片描述
在这里插入图片描述

  • 4:获取我们的存储空间域名

在这里插入图片描述

  • 5:上传操作。由于我们后端进行了特殊校验,只允许传入图片,下面演示:

在这里插入图片描述

在这里插入图片描述

文件删除⭐

  • 1:获取文件的key:

在这里插入图片描述

  • 2:文件删除:

在这里插入图片描述

http://www.yayakq.cn/news/924568/

相关文章:

  • 横店网站开发商丘做网站公司新站seo快速收录网站内容页的方法
  • 国外做giveaway的网站网站建设培训 ppt
  • 舟山网站建设推荐企业手机网站建设流程图
  • 东莞市企业网站建设哪家好上海内贸网站建设
  • 越秀电子商务网站建设网站做专题
  • 秦皇岛做网站优化广告创意制作
  • 株洲知名网站建设网络推广深圳有效渠道
  • 代做课题网站ps做网站尺寸
  • 外贸双语网站源码做网站网站建设教程
  • 长春网站建设网站制作推广网站做友链有行业要求吗
  • 网站建设教程答允苏州久远网络头皮痒 脱发严重怎么办
  • 哪个网站做logo自己网页制作的目标和受众
  • 网站站长统计代码网站平台专业开发制作app
  • o2o网站开发wordpress 架构原理
  • 网站空间合同wordpress 宅谈
  • 有什么可以做建筑模型的网站建设手机行网站
  • 怎么用 c文件做网站WordPress邮箱收不到
  • 搭建网站案例十年经验网站开发企业
  • 哈尔滨行业网站手机触屏网站开发
  • 做品牌设计网站网站建设论文1000字
  • 东莞有哪些好的网站建设公司中国十大网站建设公司排名
  • 跨境电商自建站是什么意思phpstudy 搭建wordpress
  • 网站建设中 切片指什么wordpress替换本地字体
  • 郑州企业网站优化多少钱百度快速收录权限域名
  • 网站改版 seo普陀建设网站
  • 豆芽网站建设douyanet网络营销学什么内容
  • 网站建设相关法律法规北京多用户商城网站建设
  • 做seo网站公司哪家好如何做网站alexa排名
  • 展示型网站 营销型网站php网站做代理服务器
  • 哪个网站是动态官方网站怎么注册