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

城乡建设厅官方网站建立网站的方案

城乡建设厅官方网站,建立网站的方案,濮阳公司做网站,无锡手工活外发加工网是什么 MinIO 是一个高性能的分布式对象存储服务#xff0c;适合存储非结构化数据#xff0c;如图片#xff0c;音频#xff0c;视频#xff0c;日志等。对象文件最大可以达到5TB。 安装启动 mkdir -p /usr/local/minio cd /usr/local/minio# 下载安装包 wget https:/…是什么 MinIO 是一个高性能的分布式对象存储服务适合存储非结构化数据如图片音频视频日志等。对象文件最大可以达到5TB。 安装启动 mkdir -p /usr/local/minio cd /usr/local/minio# 下载安装包 wget https://dl.min.io/server/minio/release/linux-amd64/minio下载完毕后 在当前minio目录下会出现一个minio文件 # 给予权限 chmod x minio# 创建minio文件存储目录及日志目录 mkdir -p /usr/local/minio/data mkdir -p /usr/local/minio/logs然后在 /usr/local/minio/目录下新建一个run.sh并编辑以下内容 vim run.sh然后将以下内容保存到run.sh,并为其赋予执行权限chmod ux run.sh run.sh内容如下 #!/bin/bash export MINIO_ACCESS_KEYminio export MINIO_SECRET_KEYminio123456 # nohup启动服务 指定文件存放路径 /root/data 还有设置日志文件路径 /root/minio/log nohup ./minio server --address :9000 --console-address :9001 /usr/local/minio/data /usr/local/minio/logs/minio.log 21 启动minIO # 启动minio服务 ./run.sh # 查看日志 tail -f /usr/local/minio/logs/minio.log 平台使用 地址http://127.0.0.1:9000注意开放对应端口9000、9001【当端口 9000 用于连接到 API 时MinIO 会自动将浏览器访问重定向到 MinIO 控制台9001。】 输入账号密码后 创建bucket名字随意创建完成后服务器/usr/local/minio/data下也会创建这个文件目录 http://www.dedeyun.com/it/java/102599.html SpringBoot集成MinIO 1.添加依赖 dependencygroupIdio.minio/groupIdartifactIdminio/artifactIdversion8.4.1/version/dependency2.配置文件 spring:minio:endpoint: http://124.222.253.33:9000access-key: miniosecret-key: minio123456bucket-name: fileservlet:multipart: # 上传文件最大大小max-file-size: 1024MBmax-request-size: 1024MB3.配置类创建客户端 Data Component ConfigurationProperties(prefix spring.minio) public class MinioConfig {private String endpoint;private String accessKey;private String secretKey;Beanpublic MinioClient minioClient() {return MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).build();} }4.核心业务类 仅有一些基础操作 Slf4j Service public class FileService {Autowiredprivate MinioClient minioClient;private static final String SEPARATOR /;Value(${spring.minio.bucket-name})private String bucketName;/*** 上传文件** param file 文件对象* param id 设备ID*/public void uploadFile(MultipartFile file, Long id) {try {// 创建bucketif (!minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build())) {minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());}// 同名文件会进行覆盖String objectName file.getOriginalFilename();CleanupInputStream inputStream file.getInputStream();minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(id SEPARATOR objectName) // 多文件夹.stream(inputStream, file.getSize(), -1).contentType(file.getContentType()).build());} catch (Exception e) {log.error(文件上传失败{}, e.getMessage());throw new RuntimeException(文件上传失败请重新上传);}}/*** 删除文件** param path 文件路径*/public void removeObject(String path) {try {minioClient.removeObject(RemoveObjectArgs.builder().bucket(bucketName).object(path).build());} catch (Exception e) {log.error(文件删除失败{}, e.getMessage());throw new RuntimeException(文件删除失败请重新删除);}}/*** 文件列表** param id 设备ID*/public ListFileInfo listFiles(Long id) {IterableResultItem results minioClient.listObjects(ListObjectsArgs.builder().bucket(bucketName).recursive(true).build());ListFileInfo infos new ArrayList();results.forEach(r - {FileInfo info new FileInfo();try {Item item r.get();// 最多一层文件夹String path item.objectName();int idx path.indexOf(SEPARATOR);if (path.substring(0, idx).equals(id.toString())) {info.setPath(path);info.setFileName(path.substring(idx 1));info.setSize(item.size());infos.add(info);}} catch (Exception e) {e.printStackTrace();}});return infos;}/*** 下载文件** param response response* param path 文件路径*/public void downFile(HttpServletResponse response, String path) {try {CleanupOutputStream outputStream response.getOutputStream();CleanupInputStream inputStream minioClient.getObject(GetObjectArgs.builder().bucket(this.bucketName).object(path).build());response.reset();String fileName path.substring(path.indexOf(SEPARATOR) 1);response.setHeader(Content-Disposition, attachment;filename URLEncoder.encode(fileName.substring(fileName.lastIndexOf(SEPARATOR) 1), UTF-8));response.setContentType(application/octet-stream);response.setCharacterEncoding(UTF-8);FileCopyUtils.copy(inputStream, outputStream);} catch (Throwable e) {log.error(文件下载失败{}, e.getMessage());throw new RuntimeException(文件下载失败请重新下载);}} }controller RestController public class FileController {Autowiredprivate FileService fileService;PostMapping(/upload)public String uploadFile(RequestParam(file) MultipartFile file, Long id) {fileService.uploadFile(file, id);return 上传成功;}GetMapping(/download)public String downloadFile(HttpServletResponse response, String path) {fileService.downFile(response, path);return 下载成功;}DeleteMapping(/delete)public String deleteFile(String path) {fileService.removeObject(path);return 删除成功;}GetMapping(/list)public ListFileInfo listFiles(Long id) {return fileService.listFiles(id);} }
http://www.zqtcl.cn/news/975139/

相关文章:

  • 建筑工程师的工作内容山东网站营销优化开发
  • 织梦网站首页错位淄博汽车网站建设
  • 匿名聊天网站开发长沙关键词快速排名
  • 成都网站设计报价手机微信官方网站
  • 网页设计模板网站免费做那个男女的视频网站
  • 庄河网站建设如何上传文件到网站
  • 北京企业网站改版wordpress comer
  • 做租赁的行业网站腾讯云服务器用什么做网站
  • 承德优化网站建设建设旅游网网站软件
  • 金山专业网站建设科技作品手工
  • 企业网站开发丨薇大型门户网站制作教程
  • m开头的网站开发工具青少儿编程
  • 确定网站风格域名查询中国万网
  • 邢台网站优化定制网站内怎么做搜索
  • 深圳公司网站开发济宁医院网站建设
  • vr功能网站建设手机网站引导页js插件
  • 汕头企业建站系统模板沈阳网站建设q479185700棒
  • 外包公司做网站多少百度做推广一般要多少钱
  • asp静态网站用shopify 做网站
  • 政务公开和网站建设dedecms模板安装教程
  • 做网站公司选哪家erp财务软件怎么使用
  • 常州网站建设效果网站备案换公司吗
  • 网站排名方法客流统计系统厂家
  • 免费做网站怎么做网站吗广州工程
  • 如何做全景素材网站常州做网站价格
  • 网站域名删除时间查询wordpress首页文章显示图片
  • 做网站需要什么样的服务器用html制作购物网站
  • 运城市住房与城乡建设局网站电脑培训学校课程
  • 二级学院网站建设自评报告最简单网页制作软件
  • 不开网店怎么做淘宝网站建设部网站江苏金安