博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用minio实现文档对象存储
阅读量:4029 次
发布时间:2019-05-24

本文共 2865 字,大约阅读时间需要 9 分钟。

1、第一步安装好minio服务。启动界面如下图。安装请参考--https://blog.csdn.net/saygood999/article/details/105289358

当然你还可以选择阿里云的oss存储。免去了安装步骤。

2、编写后台上传服务代码
引入maven依赖
io.minio
minio
3.0.10
其他版本可以去maven仓库找

如果使用阿里云的oss。引入以下

com.aliyun.oss
aliyun-sdk-oss
2.5.0

 

@Api(tags = "MinioController1", description = "MinIO对象存储管理")@Controller(value="appMinio")@RequestMapping("/app/upload")public class MinioController {    private static final Logger LOGGER = LoggerFactory.getLogger(MinioController.class);    @Value("${minio.endpoint}")    private String ENDPOINT;    @Value("${minio.bucketName}")    private String BUCKET_NAME;    @Value("${minio.accessKey}")    private String ACCESS_KEY;    @Value("${minio.secretKey}")    private String SECRET_KEY;    @Value("${minio.host}")    private String HOST;    @ApiOperation("文件上传")    @RequestMapping(value = "/upload", method = RequestMethod.POST)    @ResponseBody    public CommonResult upload(@RequestParam("file") MultipartFile file) {        try {            //创建一个MinIO的Java客户端            MinioClient minioClient = new MinioClient(ENDPOINT, ACCESS_KEY, SECRET_KEY);            boolean isExist = minioClient.bucketExists(BUCKET_NAME);            if (isExist) {                LOGGER.info("存储桶已经存在!");            } else {                //创建存储桶并设置只读权限                minioClient.makeBucket(BUCKET_NAME);                minioClient.setBucketPolicy(BUCKET_NAME, "*.*", PolicyType.READ_ONLY);            }            String filename = file.getOriginalFilename();            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");            // 设置存储对象名称            String objectName = sdf.format(new Date()) + "/" + filename;            // 使用putObject上传一个文件到存储桶中            minioClient.putObject(BUCKET_NAME, objectName, file.getInputStream(), file.getContentType());            LOGGER.info("文件上传成功!");            MinioUploadDto minioUploadDto = new MinioUploadDto();            minioUploadDto.setName(filename);            minioUploadDto.setUrl(HOST + "/" + BUCKET_NAME + "/" + objectName);            return CommonResult.success(minioUploadDto);        } catch (Exception e) {            e.printStackTrace();            LOGGER.info("上传发生错误: {}!", e.getMessage());        }        return CommonResult.failed();    }    @ApiOperation("文件删除")    @RequestMapping(value = "/delete", method = RequestMethod.POST)    @ResponseBody    public CommonResult delete(@RequestParam("objectName") String objectName) {        try {            MinioClient minioClient = new MinioClient(ENDPOINT, ACCESS_KEY, SECRET_KEY);            minioClient.removeObject(BUCKET_NAME, objectName);            return CommonResult.success(null);        } catch (Exception e) {            e.printStackTrace();        }        return CommonResult.failed();    }}

 

然后就大功告成了

你可能感兴趣的文章
wpa_supplicant控制脚本
查看>>
rfkill: WLAN hard blocked
查看>>
gstreamer相关工具集合
查看>>
arm 自动升级脚本
查看>>
RS232 四入四出模块控制代码
查看>>
gstreamer插件之 videotestsrc
查看>>
autoupdate script
查看>>
linux 驱动开发 头文件
查看>>
/etc/resolv.conf
查看>>
container_of()传入结构体中的成员,返回该结构体的首地址
查看>>
linux sfdisk partition
查看>>
ipconfig,ifconfig,iwconfig
查看>>
opensuse12.2 PL2303 minicom
查看>>
电平触发方式和边沿触发的区别
查看>>
网络视频服务器移植
查看>>
Encoding Schemes
查看>>
移植QT
查看>>
如此调用
查看>>
计算机的发展史
查看>>
带WiringPi库的交叉编译如何处理一
查看>>