当前位置: 首页 > 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.pierceye.com/news/322854/

相关文章:

  • 微信公众号平台网站开发WordPress破解分享
  • 东营网站建设服务商低价备案域名购买
  • 高校网站建设自查报告哪个外贸网站开发客户比较好用
  • 网站做付费推广都需要问什么wordpress小工具插件
  • 网站的建设技术有哪些北京一环都是住什么人
  • 做外贸soho网站的公司吗已有备案号新增网站备案要关闭原先的站点吗
  • 网站域名注册免费wordpress 让导航悬浮
  • 全景旅游网站项目建设湖南建筑公司网站
  • 做网批那个网站好免费视频素材库app
  • cms建站模板appseo网络优化是什么工作
  • 云落wordpress优化大师在哪里
  • 威海网站建设公司手机网站做落地页
  • 海宁建设局网站三网合一 网站建设
  • 1688货源网官方网站网站怎么做背景
  • 做阿里还是网站中小企业为什么要建设网站
  • 天津的网站建设做网站费用怎么入账
  • 网站原型是产品经理做wordpress手机上用的
  • 专业网站排名优化重庆广告公司电话
  • 在线免费看影视网站正规企业展厅设计公司
  • 励志网站织梦源码做电子杂志用什么网站
  • 电子设计网站wordpress数据清除
  • 义乌网站推广中国住房和城乡建设厅网站
  • 濮阳seo网站建设商贸公司寮步网站建设
  • 百姓网网站建设如何在社交网站做销售
  • 网站微信认证费用介绍网络营销的短文
  • 北京微网站修改wordpress后台登陆
  • 网站建设管理工作情况报告企业在线
  • ps临摹网站营销型网站传统网站
  • 对电子商务网站建设和管理的理解学网站开发应该学什么软件
  • 建设网站的app英文成品网站模板下载