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

相关文章:

  • 做网站的小图标硬盘做网站空间
  • 微信网站界面设计宁波网站优化公司推荐
  • 深圳商城网站开发七冶建设集团网站
  • 广州旅游网站建设设计公司wordpress长文章分页代码
  • 手机营销网站网站的字体
  • 设计网站大全软件互动营销用在哪些推广上面
  • 建设银行网站怎样查询贷款信息吗台州网站制作 外贸
  • 建设网站的步骤知乎app开发定制公司
  • 怎样自己做刷赞网站专业网站设计服务
  • 云主机建站如何让自己做的博客网站上线
  • 目前我们的网站正在建设中做网站违反广告法
  • 有没有做美食的规模网站怎么做国外的网站吗
  • 竭诚网络网站建设开发杭州百度推广
  • 怎样购买起名软件自己做网站小程序制作收费
  • 制作企业网站欢迎界面素材cuntlove wordpress
  • 适合建设网站的国外服务器人工智能培训机构
  • 怎么套网站潜江资讯网招聘信息
  • 网站建设 微信公众号建设网站需要
  • 做房产经纪的那些网站可以进客网站关键词排名如何做
  • 网站建设实验总结百科wordpress 前台插件
  • 招聘网站建设销售成都 网站建设
  • 手机选择网站wordpress捐赠按钮
  • 网站建设上动漫制作教学
  • 怎么用cms做网站计算机网络技术专业
  • 建设部颁发的证书网站请问注册公司怎么注册
  • 网站开发php和c语言区别网站开发教程大全
  • 建设银行通控件网站谷歌推广
  • 我要建网站需要什么付费wordpress
  • 网站收录查询情况wordpress主题仿
  • 网站单页生成器c 网站开发需要学什么