当前位置: 首页 > news >正文

手工品外贸出口网站建设方案新品手机上市

手工品外贸出口网站建设方案,新品手机上市,后缀int网站,公众号开发运营方案minio-分布式文件存储系统 minio的简介 MinIO基于Apache License v2.0开源协议的对象存储服务,可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用Golang实现,服务端可以工作在Windows,Linux, OS X和FreeBSD上。配置…

minio-分布式文件存储系统

在这里插入图片描述

minio的简介

MinIO基于Apache License v2.0开源协议的对象存储服务,可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用Golang实现,服务端可以工作在Windows,Linux, OS X和FreeBSD上。配置简单,基本是复制可执行程序,单行命令可以运行起来。

MinIO兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。 官网文档:

minio的特点

  • 数据保护

​ Minio使用Minio Erasure Code(纠删码)来防止硬件故障。即便损坏一半以上的driver,但是仍然可以从中恢复。

  • 高性能

​ 作为高性能对象存储,在标准硬件条件下它能达到55GB/s的读、35GB/s的写速率

  • 可扩容

​ 不同MinIO集群可以组成联邦,并形成一个全局的命名空间,并跨越多个数据中心

  • SDK支持

​ 基于Minio轻量的特点,它得到类似Java、Python或Go等语言的sdk支持

  • 有操作页面

​ 面向用户友好的简单操作界面,非常方便的管理Bucket及里面的文件资源

  • 功能简单

​ 这一设计原则让MinIO不容易出错、更快启动

  • 丰富的API

​ 支持文件资源的分享连接及分享链接的过期策略、存储桶操作、文件列表访问及文件上传下载的基本功能等。

  • 文件变化主动通知

​ 存储桶(Bucket)如果发生改变,比如上传对象和删除对象,可以使用存储桶事件通知机制进行监控,并通过以下方式发布出去:AMQP、MQTT、 Elasticsearch、Redis、NATS、MySQL、Kafka、Webhooks等。

minio部署(docker)

创建文件目录

mkdir -p /export/server/docker/minio/data
mkdir -p /export/server/docker/minio/config
docker run -p 9000:9000 -p 9090:9090 \--net=host \--name minio \-d --restart=always \-e "MINIO_ACCESS_KEY=minioadmin" \-e "MINIO_SECRET_KEY=minioadmin" \-v  /export/server/docker/minio/data:/data \-v  /export/server/docker/minio/config:/root/.minio \minio/minio server \/data --console-address ":9090" -address ":9000"

访问地址 :http://ip:9090 用户名:minioadmin 密码:minioadmin

在这里插入图片描述

springboot整合minio

maven依赖

<dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>7.1.0</version>
</dependency>

配置文件

minio:url: 129.0.0.1:9000 #换成自己的minio服务端地址access-key: minioadminsecret-key: minioadminbucket-name: ding_server

配置类

@Data
@Configuration
@Component
@PropertySource(value = {"classpath:application.yml"},ignoreResourceNotFound = false, encoding = "UTF-8", name = "authorSetting.properties")
@ConfigurationProperties(value = "minio")
public class MinioProperties {@Value("${minio.url}")private String url;@Value("${minio.access-key}")private String accessKey;@Value("${minio.secret-key}")private String secretKey;@Value("${minio.bucket-name}")private String bucketName;}

工具类

import io.minio.MinioClient;
import io.minio.errors.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import org.xmlpull.v1.XmlPullParserException;import java.io.IOException;
import java.io.InputStream;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;@Component
@Configuration
@EnableConfigurationProperties(MinioProperties.class)
public class MinioTemplate {@Autowiredprivate MinioProperties minioProperties;private MinioClient minioClient;public MinioTemplate() {}public MinioClient getMinioClient() {if (minioClient == null) {try {return new MinioClient(minioProperties.getUrl(), minioProperties.getAccessKey(), minioProperties.getSecretKey());} catch (InvalidEndpointException e) {e.printStackTrace();} catch (InvalidPortException e) {e.printStackTrace();}}return minioClient;}public void createBucket(String bucketName) throws IOException, InvalidKeyException, NoSuchAlgorithmException, InsufficientDataException, InvalidResponseException, InternalException, NoResponseException, InvalidBucketNameException, XmlPullParserException, ErrorResponseException, RegionConflictException {MinioClient minioClient = getMinioClient();if (!minioClient.bucketExists(bucketName)) {minioClient.makeBucket(bucketName);}}/*** 获取文件外链* @param bucketName bucket 名称* @param objectName 文件名称* @param expires   过期时间 <=7* @return*/public String getObjectURL(String bucketName,String objectName,int expires) throws IOException, InvalidKeyException, NoSuchAlgorithmException, InsufficientDataException, InvalidExpiresRangeException, InvalidResponseException, InternalException, NoResponseException, InvalidBucketNameException, XmlPullParserException, ErrorResponseException {return getMinioClient().presignedGetObject(bucketName, objectName, expires);}/*** 获取文件* @param bucketName* @param objectName* @return*/public InputStream getObject(String bucketName,String objectName) throws IOException, InvalidKeyException, NoSuchAlgorithmException, InsufficientDataException, InvalidArgumentException, InvalidResponseException, InternalException, NoResponseException, InvalidBucketNameException, XmlPullParserException, ErrorResponseException {return getMinioClient().getObject(bucketName, objectName);}/*** 上传文件* @param bucketName* @param objectName* @param stream*/public void putObject(String bucketName, String objectName, InputStream stream) throws IOException, XmlPullParserException, NoSuchAlgorithmException, RegionConflictException, InvalidKeyException, InvalidResponseException, ErrorResponseException, NoResponseException, InvalidBucketNameException, InsufficientDataException, InternalException, InvalidArgumentException {createBucket(bucketName);getMinioClient().putObject(bucketName,objectName,stream,stream.available(),"application/octet-stream");}public void putObject(String bucketName, String objectName, InputStream stream, int size, String contextType) throws IOException, XmlPullParserException, NoSuchAlgorithmException, RegionConflictException, InvalidKeyException, InvalidResponseException, ErrorResponseException, NoResponseException, InvalidBucketNameException, InsufficientDataException, InternalException, InvalidArgumentException {createBucket(bucketName);getMinioClient().putObject(bucketName,objectName,stream,size,contextType);}/*** 删除文件* @param bucketName* @param objectName*/public void removeObject(String bucketName, String objectName) throws IOException, InvalidKeyException, NoSuchAlgorithmException, InsufficientDataException, InvalidArgumentException, InvalidResponseException, InternalException, NoResponseException, InvalidBucketNameException, XmlPullParserException, ErrorResponseException {getMinioClient().removeObject(bucketName,objectName);}}
http://www.yayakq.cn/news/749831/

相关文章:

  • 做老电影网站侵权吗河北省建设工程信息网招标公告
  • 网站开发流行语言国外服装网站
  • 建设银行官网站查询济宁网站设计
  • 株洲在线网站的目标客户目前做啥网站能致富
  • 关于手机的网站有哪些内容吗安装wordpress建站程序
  • 网站建设课程体系品牌设计公司宣传画册
  • 厦门石材网站建设企业网站建设 知乎
  • 个人网站备案名字上传网站
  • opencart做的网站北京哪家做网站好
  • 教学参考网站建设wordpress怎么首页添加板块
  • 高端网站建设网推
  • 百度seo在线优化小说网站怎么做seo
  • 零基础网站建设教学上海哪些做网站
  • 企业为什么要建站seo网站推广的作用
  • 苏华建设集团有限公司网站网站开发硬件
  • 怎么做淘宝网站推广招生宣传软文
  • vue 做企业网站网站空间续费
  • 上海网站开发哪里有wordpress主机xampp
  • 教学成果展示网站 课程体系建设一般通过人
  • 做网站499乐陵seo外包
  • 检测ai写作的网站wordpress 短网址插件
  • 住房和城乡建设厅证书查询网镇江网站优化公司
  • 贵州省建设项目备案查询网站h5和小程序有什么区别
  • mvc 手机网站开发网站建设 外包 厦门
  • 网站开发类合同dyndns如何申请免费域名
  • 网站下载免费软件安装专科学什么专业好就业前景好
  • 长沙自适应网站制作陕西建设网站官方
  • 网站的字体seo专员
  • 知识网站怎么知道一个网站是谁做的
  • 百度站长平台推出网站移动化大赛山东网站建设方案制作