怎么做站旅游网站上泡到妞,青浦php网站开发培训,企业网站如何推广,做彩票网站需要什么收钱的简介 MinIO是高性能、可扩展、云原生支持、操作简单、开源的分布式对象存储产品。
在中国#xff1a;阿里巴巴、腾讯、百度、中国联通、华为、中国移动等等9000多家企业也都在使用MinIO产品
官网地址#xff1a;http://www.minio.org.cn/
下载 官网下载(8.4.3版本)#x…简介 MinIO是高性能、可扩展、云原生支持、操作简单、开源的分布式对象存储产品。
在中国阿里巴巴、腾讯、百度、中国联通、华为、中国移动等等9000多家企业也都在使用MinIO产品
官网地址http://www.minio.org.cn/
下载 官网下载(8.4.3版本)http://www.minio.org.cn/download.shtml
1、拉取镜像https://hub.docker.com/r/minio/minio/tags# 下载新版minio
docker pull minio/minio# 或者下载指定版本的minio
docker pull minio/minio:RELEASE.2021-04-06T23-11-00Z 2、创建容器docker run -p 9000:9000 --name minio -d --restartalways -e MINIO_ACCESS_KEYminio -e MINIO_SECRET_KEYminio123 -v /docker/minio/data:/data -v /docker/minio/config:/root/.minio minio/minio server /data# 或者指定镜像版本并创建容器
docker run -p 9000:9000 --name minio -d --restartalways -e MINIO_ACCESS_KEYminio -e MINIO_SECRET_KEYminio123 -v /docker/minio/data:/data -v /docker/minio/config:/root/.minio minio/minio:RELEASE.2021-04-06T23-11-00Z server /data-p 9000:9000 端口映射
-e环境变量
-d后台运行
–name给容器起名字
–restartalways开机自启
-e “MINIO_ACCESS_KEYminio”设置账号
-e “MINIO_SECRET_KEYminio123”设置密码
-v 挂载数据卷
07运行 创建四个文件夹data0、data1、data2、data3用存放文件。
「启动minio服务」
# mac/linux
./minio server ./data0 ./data1 ./data2 ./data3# windows
minio.exe server ./data0 ./data1 ./data2 ./data3
访问地址http://127.0.0.1:9000/默认账号和密码都是minioadmin。4. 创建桶 在Minio和其他一些对象存储服务中“桶”Bucket是一个顶层的容器用于组织和管理存储的对象Object。可以将桶类比为文件系统中的文件夹用于将一组相关的对象进行组织和分类。
每个桶在Minio中具有唯一的名称并且可以根据需要创建多个桶。用户可以使用桶名称来访问和操作其中的对象。桶名称是全局唯一的因此需要确保不同应用程序使用不同的桶名称以避免冲突。
我们创建一个test的桶(bucket)。
SpringBoot 集成 MinIO 5.1 pom.xml 添加如下minio依赖
dependencygroupIdio.minio/groupIdartifactIdminio/artifactIdversion8.4.3/version
/dependency5.2 MinioConfiguration 配置minio的地址、账号和密码配置上传文件的大小1024M。
Configuration
public class MinioConfiguration {private static final String END_POINT http://localhost:9000;private static final String USERNAME minioadmin;private static final String PASSWORD minioadmin;Beanpublic MinioClient minioClient() {return new MinioClient.Builder().endpoint(END_POINT).credentials(USERNAME, PASSWORD).build();}Beanpublic MultipartConfigElement multipartConfigElement() {MultipartConfigFactory factory new MultipartConfigFactory();factory.setMaxFileSize(DataSize.ofMegabytes(1024));factory.setMaxRequestSize(DataSize.ofMegabytes(1024));return factory.createMultipartConfig();}
}5.3 MinioController upload上传文件接口传入参数bucket文件保存到minio后会返回fileName。
getUrl获取文件访问链接接口传入参数path和bucket返回可以访问的链接7天有效。这里的path就是上传文件的返回值fileName。
RequestMapping(minio)
RestController
public class MinioController {Resourceprivate MinioClient minioClient;PostMapping(value upload, consumes MediaType.MULTIPART_FORM_DATA_VALUE)public String upload(RequestPart(file) MultipartFile file,RequestParam(bucket) String bucket) {try {int idx Objects.requireNonNull(file.getOriginalFilename()).lastIndexOf(.);String suffix file.getOriginalFilename().substring(idx 1);String fileName UuidUtils.generateUuid() . suffix;// 保存文件minioClient.putObject(PutObjectArgs.builder().stream(file.getInputStream(), file.getSize(), PutObjectArgs.MIN_MULTIPART_SIZE).object(fileName).contentType(file.getContentType()).bucket(bucket).build());return fileName;} catch (Exception e) {e.printStackTrace();return ;}}GetMapping(getUrl)public String getUrl(RequestParam(name path) String path,RequestParam(bucket) String bucket) {try {// 获取文件访问地址 7天失效String url minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder().bucket(bucket).object(path).method(Method.GET).expiry(7, TimeUnit.DAYS).build());return url;} catch (Exception e) {e.printStackTrace();return ;}}
}
5.4 okhttp3版本不兼容 如果出现okhttp3版本不兼容的问题需要在pom.xml的properties节点下加上版本号如下
okhttp3.version4.8.1 /okhttp3.version1、删除自动恢复 可以测试删除其中一半的存放位置它过一会儿就自动恢复了比如删除data0和data1,几分钟它就自动重新创建了文件并且里面的内容也恢复了。
2、文件夹 上传的单个文件变成了文件夹 3 分块存储 点击到里面单个文件被拆分成了许多个小块