MinIO:微服务中上传图片流程

这篇具有很好参考价值的文章主要介绍了MinIO:微服务中上传图片流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、在nacos中配置minio参数

MinIO:微服务中上传图片流程,微服务,微服务,架构,云原生

 2、controller层

package com.heima.wemedia.controller.v1;

import com.heima.model.common.dtos.ResponseResult;
import com.heima.wemedia.service.WmMaterialService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

@RestController
@RequestMapping("/api/v1/material")
public class WmMaterialController {

    @Autowired
    WmMaterialService wmMaterialService;

    @PostMapping("/upload_picture")
    public ResponseResult upload(MultipartFile multipartFile){
        return wmMaterialService.upload(multipartFile);
    }

}

3、接口实现类

     封装minio上传工具Minio: 封装MinIO为starter_moreCalm的博客-CSDN博客

     获取用户id的前置工作 微服务:从header中获取用户存入当前线程_moreCalm的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-634091.html

package com.heima.wemedia.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.heima.file.service.FileStorageService;
import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.common.enums.AppHttpCodeEnum;
import com.heima.model.common.wemedia.model.po.WmMaterial;
import com.heima.utils.thread.WmThreadLocalUtil;
import com.heima.wemedia.mapper.WmMaterialMapper;
import com.heima.wemedia.service.WmMaterialService;
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.IOException;
import java.time.LocalDateTime;
import java.util.UUID;

/**
 * <p>
 * 自媒体图文素材信息表 服务实现类
 * </p>
 *
 * @author itcast
 * @since 2023-08-05
 */
@Service
@Slf4j
public class WmMaterialServiceImpl extends ServiceImpl<WmMaterialMapper, WmMaterial> implements WmMaterialService {
    @Autowired
    private FileStorageService fileStorageService;


    /*图片上传*/
    @Override
    public ResponseResult upload(MultipartFile file) {

        /*参数校验*/
        if(file == null || file.getSize() <= 0){
            return ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID);
        }

        /*上传图片到minio*/
        //生成uuid
        String fileName = UUID.randomUUID().toString().replace("-", "");
        //获取图片名称
        String originalFilename = file.getOriginalFilename();
        //获取文件扩展名(后缀名)
        String postfix = originalFilename.substring(originalFilename.lastIndexOf("."));
        //定义文件id用来接收上传的图片
        String fileId = null;

        try {
            fileId = fileStorageService.uploadImgFile("", fileName + postfix, file.getInputStream());
            log.info("上传图片到MinIO中,fileId:{}",fileId);
        } catch (IOException e) {
            e.printStackTrace();
            log.error("WmMaterialServiceImpl-上传文件失败");
        }

        /*保存数据到数据库中*/
        WmMaterial wmMaterial = new WmMaterial();
        wmMaterial.setUserId(WmThreadLocalUtil.getUser().getId());//用户id
        wmMaterial.setUrl(fileId);//图片地址
        wmMaterial.setType(0);//文件类型(0 图片 1 视频)
        wmMaterial.setCollection(0);//是否收藏
        wmMaterial.setCreatedTime(LocalDateTime.now());//创建时间
        save(wmMaterial);//保存数据库

        /*返回结果*/
        return ResponseResult.okResult(wmMaterial);
    }
}

到了这里,关于MinIO:微服务中上传图片流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java 上传文件到MinIO服务器上

    一、MinIO配置 主界面: 2.创建桶的文件路径 你可以设置任意想要配置的路径  3.管理桶权限 这里Prefix写 * 是为了匹配所有请求路径 Access: readonly就可以通过url访问图片了。 二、SpringBoot Maven项目: 导入坐标:  三、配置application.yml文件 四、编写读取配置类 五、创建工具类 六

    2024年02月08日
    浏览(48)
  • Linux本地MinIO存储服务远程调用上传文件

    🔥 博客主页 : 小羊失眠啦. 🎥 系列专栏 : 《C语言》 《数据结构》 《Linux》 《Cpolar》 ❤️ 感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 MinIO是一款高性能、分布式的对象

    2024年02月05日
    浏览(61)
  • 图片、文件资源服务器(minio服务器)

    1.MinioConfig配置类 2.MinioUtil工具类 3.对应使用方法

    2024年02月11日
    浏览(54)
  • 图片上传流程&前端上传文件&后端保存文件&并返回图片地址

    也是在最近一点时间写小demo 遇到的一些问题 比如在用户界面,用户选择本地的一张照片,前端把照片传到后端,后端怎么把照片保存到服务器,然后返回给 图片线上地址。也是找了一些文章,然后分享下。  技术 前端:react 后端:egg.js(node框架) base64 转换  转二进制 保存

    2024年02月02日
    浏览(77)
  • 微信原生实现一个简易的图片上传功能

    wx.showActionSheet():显示操作菜单,选择是从相册选择还是相机拍摄照片 wx.chooseImage():从本地相册选择图片或使用相机拍照。 wx.uploadFile():将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求,其中 content-type 为 multipart/form-data。 wx.previewMedia(): 预览图片和视频。 upload.wx

    2024年02月16日
    浏览(36)
  • 在Linux下探索MinIO存储服务如何远程上传文件

    🌈个人主页: 聆风吟 🔥系列专栏: 网络奇遇记、Cpolar杂谈 🔖少年有梦不应止于心动,更要付诸行动。 MinIO是一款高性能、分布式的对象存储系统,它可以100%的运行在标准硬件上,即X86等低成本机器也能够很好的运行MinIO。它的优点包括高性能、高可用性、易于部署和管理

    2024年02月04日
    浏览(45)
  • Linux下使用Docker部署MinIO存储服务实现远程上传

    本文主要是Linux下通过Docker部署MinIO存储服务实现远程上传的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句:努力一点,优秀一点 前言 MinIO是一个开源的对象存储服务器,可以在各种环

    2024年02月19日
    浏览(42)
  • vue中,上传图片的流程

    在Vue中进行图片上传的步骤可以分为以下几个:         添加上传组件         首先,你需要在Vue组件中添加一个上传组件,例如 input type=\\\"file\\\" 。可以使用Vue的模板语法来添加组件,并使用 v-model 指令将文件绑定到组件中。以下是一个示例: vue         在这里,

    2024年02月12日
    浏览(30)
  • 如何在MinIO存储服务中通过Buckets实现远程访问管理界面上传文件

    MinIO是一款高性能、分布式的对象存储系统,它可以100%的运行在标准硬件上,即X86等低成本机器也能够很好的运行MinIO。它的优点包括高性能、高可用性、易于部署和管理、支持多租户等。 Cpolar内网穿透提供了更高的安全性和隐私保护,通过使用加密通信通道,Cpolar技术可以

    2024年01月20日
    浏览(50)
  • 如何在Docker下部署MinIO存储服务通过Buckets实现文件的远程上传

    本文主要是Linux下通过Docker部署MinIO存储服务实现远程上传的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句:努力一点,优秀一点 前言 MinIO是一个开源的对象存储服务器,可以在各种环

    2024年01月21日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包