最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

FastDFS收藏起來,現(xiàn)在開始用Minio吧

2023-04-15 11:01 作者:汔源  | 我要投稿

一、Minio介紹

MinIO是全球領先的對象存儲先鋒,目前在全世界有數(shù)百萬的用戶。

  • 高性能?,在標準硬件上,讀/寫速度上高達183GB/秒和171GB/秒,擁有更高的吞吐量和更低的延遲

  • 可擴展性?,為對象存儲帶來了簡單的縮放模型,通過添加更多集群可以擴展空間

  • 簡單?,極簡主義是MinIO的指導性設計原則,即可在幾分鐘內(nèi)安裝和配置

  • 與Amazon S3兼容?,亞馬遜云的?S3 API(接口協(xié)議)是在全球范圍內(nèi)達到共識的對象存儲的協(xié)議,是全世界內(nèi)大家都認可的標準

  • 數(shù)據(jù)安全?,使用糾刪碼來保護數(shù)據(jù)免受硬件故障和無聲數(shù)據(jù)損壞

糾刪碼

??糾刪碼是一種恢復丟失和損壞數(shù)據(jù)的數(shù)學算法, Minio默認采用?Reed-Solomon code將數(shù)據(jù)拆分成N/2個數(shù)據(jù)塊和N/2個奇偶校驗塊。這就意味著如果是16塊盤,一個對象會被分成8個數(shù)據(jù)塊、8個奇偶校驗塊,你可以丟失任意8塊盤(不管其是存放的數(shù)據(jù)塊還是校驗塊),你仍可以從剩下的盤中的數(shù)據(jù)進行恢復。

http://docs.minio.org.cn/docs/master/java-client-quickstart-guide

Minio和FastDFS的對比

  1. 安裝難度

  2. 文檔

  3. 性能

  4. 容器化支持

  5. SDK支持

二、Minio安裝

??為了快速搞定Minio的部署工作。我們通過Docker-Compose來一鍵快速部署操作

1.安裝DockerCompose

??安裝DockerCompose的前提是先安裝一個Docker環(huán)境,如果還沒安裝的參考波哥的博客地址:https://blog.csdn.net/qq_38526573/category_9619681.html

??Compose 是用于定義和運行多容器 Docker 應用程序的工具。通過 Compose,您可以使用 YML 文件來配置應用程序需要的所有服務。然后,使用一個命令,就可以從 YML 文件配置中創(chuàng)建并啟動所有服務。

一鍵啟動所有的服務

DockerCompose的使用步驟

  • 創(chuàng)建對應的DockerFile文件

  • 創(chuàng)建yml文件,在yml文件中編排我們的服務

  • 通過?docker-compose up命令 一鍵運行我們的容器

官網(wǎng)地址:https://docs.docker.com/compose

下載地址:

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

修改文件夾權(quán)限

chmod +x /usr/local/bin/docker-compose

建立軟連接

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

檢查是否安裝成功

docker-compose --version

2.安裝Minio集群

官方推薦?docker-compose.yaml:

稍加修改,內(nèi)容如下:

version: '3.7'# 所有容器通用的設置和配置x-minio-common: &minio-common ?image: minio/minio ?command: server --console-address ":9001" http://minio{1...4}/data ?expose: ? ?- "9000" ?# environment: ? ?# MINIO_ROOT_USER: minioadmin ? ?# MINIO_ROOT_PASSWORD: minioadmin ?healthcheck: ? ?test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] ? ?interval: 30s ? ?timeout: 20s ? ?retries: 3# 啟動4個docker容器運行minio服務器實例# 使用nginx反向代理9000端口,負載均衡, 你可以通過9001、9002、9003、9004端口訪問它們的web consoleservices: ?minio1: ? ?<<: *minio-common ? ?hostname: minio1 ? ?ports: ? ? ?- "9001:9001" ? ?volumes: ? ? ?- ./data/data1:/data ?minio2: ? ?<<: *minio-common ? ?hostname: minio2 ? ?ports: ? ? ?- "9002:9001" ? ?volumes: ? ? ?- ./data/data2:/data ?minio3: ? ?<<: *minio-common ? ?hostname: minio3 ? ?ports: ? ? ?- "9003:9001" ? ?volumes: ? ? ?- ./data/data3:/data ?minio4: ? ?<<: *minio-common ? ?hostname: minio4 ? ?ports: ? ? ?- "9004:9001" ? ?volumes: ? ? ?- ./data/data4:/data ?nginx: ? ?image: nginx:1.19.2-alpine ? ?hostname: nginx ? ?volumes: ? ? ?- ./config/nginx.conf:/etc/nginx/nginx.conf:ro ? ?ports: ? ? ?- "9000:9000" ? ?depends_on: ? ? ?- minio1 ? ? ?- minio2 ? ? ?- minio3 ? ? ?- minio4

接著新建文件夾?config,新建配置?nginx.conf

user ?nginx;worker_processes ?auto;error_log ?/var/log/nginx/error.log warn;pid ? ? ? ?/var/run/nginx.pid;events { ? ?worker_connections ?4096; }http { ? ?include ? ? ? /etc/nginx/mime.types; ? ?default_type ?application/octet-stream; ? ?log_format ?main ?'$remote_addr - $remote_user [$time_local] "$request" ' ? ? ? ? ? ? ? ? ? ? ?'$status $body_bytes_sent "$http_referer" ' ? ? ? ? ? ? ? ? ? ? ?'"$http_user_agent" "$http_x_forwarded_for"'; ? ?access_log ?/var/log/nginx/access.log ?main; ? ?sendfile ? ? ? ?on; ? ?keepalive_timeout ?65; ? ?# include /etc/nginx/conf.d/*.conf; ? ?upstream minio { ? ? ? ?server minio1:9000; ? ? ? ?server minio2:9000; ? ? ? ?server minio3:9000; ? ? ? ?server minio4:9000; ? ?} ? ?server { ? ? ? ?listen ? ? ? 9000; ? ? ? ?listen ?[::]:9000; ? ? ? ?server_name ?localhost; ? ? ? ?# To allow special characters in headers ? ? ? ?ignore_invalid_headers off; ? ? ? ?# Allow any size file to be uploaded. ? ? ? ?# Set to a value such as 1000m; to restrict file size to a specific value ? ? ? ?client_max_body_size 0; ? ? ? ?# To disable buffering ? ? ? ?proxy_buffering off; ? ? ? ?location / { ? ? ? ? ? ?proxy_set_header Host $http_host; ? ? ? ? ? ?proxy_set_header X-Real-IP $remote_addr; ? ? ? ? ? ?proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; ? ? ? ? ? ?proxy_set_header X-Forwarded-Proto $scheme; ? ? ? ? ? ?proxy_connect_timeout 300; ? ? ? ? ? ?# Default is HTTP/1, keepalive is only enabled in HTTP/1.1 ? ? ? ? ? ?proxy_http_version 1.1; ? ? ? ? ? ?proxy_set_header Connection ""; ? ? ? ? ? ?chunked_transfer_encoding off; ? ? ? ? ? ?proxy_pass http://minio; ? ? ? ?} ? ?} }

然后執(zhí)行對應的命令

docker-compose up -d


image.png

訪問控制臺:http://192.168.56.100:9000


image.png

賬號密碼為:minioadmin


image.png

三、Minio客戶端

??然后我們可以創(chuàng)建一個Java項目來操作文件上傳下載操作。

1.Bucket

??Bucket是桶的意思。我們創(chuàng)建一個Bucket


image.png


image.png

我們還可以直接上傳圖片文件等


image.png


image.png

2.用戶管理

??針對客戶端的操作,我們需要維護相關的賬號來管理。


image.png

直接點擊創(chuàng)建相關的用戶即可


image.png

用戶創(chuàng)建完成后我們就可以通過客戶端工具來操作了。

3. Java項目

??然后我們來看看如何在Java項目中來操作了。

首先添加必要的依賴

<dependency> ? ? ? ? ? ?<groupId>io.minio</groupId> ? ? ? ? ? ?<artifactId>minio</artifactId> ? ? ? ? ? ?<version>7.0.2</version> ? ? ? ?</dependency> ? ? ? ?<!-- https://mvnrepository.com/artifact/commons-io/commons-io --> ? ? ? ?<dependency> ? ? ? ? ? ?<groupId>commons-io</groupId> ? ? ? ? ? ?<artifactId>commons-io</artifactId> ? ? ? ? ? ?<version>2.8.0</version> ? ? ? ?</dependency>

然后通過相關的API操作即可

? ?private String endpoint = "http://192.168.56.100:9000"; ? ?private String accessKey = "dpb"; ? ?private String secretKey = "12345678"; ? ?@Test ? ?void contextLoads() throws Exception{ ? ? ? ?// 1.使用MinIo服務的URL,端口 賬號和密碼 創(chuàng)建一個 MinIoClient對象 ? ? ? ?MinioClient minioClient = new MinioClient(endpoint, accessKey, secretKey); ? ? ? ?boolean isExists = minioClient.bucketExists("test"); ? ? ? ?if(isExists){ ? ? ? ? ? ?System.out.println("已經(jīng)存在了 test 這個 Bucket"); ? ? ? ?}else{ ? ? ? ? ? ?minioClient.makeBucket("test"); ? ? ? ?} ? ? ? ?// 存儲文件到 存儲桶中 ? ? ? ?minioClient.putObject("test","/group1/UserMapper.xml","d:/UserMapper.xml",null); ? ? ? ?System.out.println("文件上傳成功..."); ? ? ? ?// 下載文件 ? ? ? ?InputStream in = minioClient.getObject("test", "/group1/UserMapper.xml"); ? ? ? ?List<String> strings = IOUtils.readLines(in, "UTF-8"); ? ? ? ?strings.stream().forEach(s -> System.out.println(s)); ? ?}

執(zhí)行后成功:


image.png


image.png

搞定

4.獲取圖片地址

??如果上傳的是普通文件我們可以獲取對應的字節(jié)流來操作,但是如果我們需要獲取的是圖片。只要訪問就可以了,這時我們可以通過對應的API來獲取圖片的URL地址就可以了


image.png

但是在訪問的時候缺提示訪問不了


image.png

原因是我們需要設置下Bucket的策略


image.png


image.png

訪問就可以了


FastDFS收藏起來,現(xiàn)在開始用Minio吧的評論 (共 條)

分享到微博請遵守國家法律
金阳县| 浦东新区| 浦北县| 蒙阴县| 开鲁县| 麦盖提县| 张家口市| 郁南县| 平南县| 淮北市| 涟水县| 炎陵县| 西乌珠穆沁旗| 汤阴县| 宜兴市| 江永县| 南漳县| 庆安县| 丽江市| 荣昌县| 衡南县| 白城市| 容城县| 合水县| 当涂县| 柘荣县| 炉霍县| 周宁县| 开平市| 化隆| 德清县| 桐梓县| 泰和县| 湖北省| 安塞县| 临沭县| 抚松县| 思南县| 乾安县| 娱乐| 东安县|