Minio單機安裝和使用


什么是minio?

MinIO 是一個基於Apache License v2.0開源協議的對象存儲服務。它兼容亞馬遜S3雲存儲服務接口,非常適合於存儲大容量非結構化的數據,例如圖片、視頻、日志文件、備份數據和容器/虛擬機鏡像等,而一個對象文件可以是任意大小,從幾kb到最大5T不等。

MinIO是一個非常輕量的服務,可以很簡單的和其他應用的結合,類似 NodeJS, Redis 或者 MySQL。

1、官網地址 http://www.minio.org.cn/

2、github地址 https://github.com/minio/minio

window部署

3、windows 服務端下載地址

     http://dl.minio.org.cn/server/minio/release/windows-amd64/minio.exe

4、安裝啟動

    啟動一個cmd窗口,進入minio.exe所在文件夾,輸入如下命令

   新建一個目錄存放minio文件,我建的文件名叫 D:\Dminio\DminioData,CMD進入剛剛下載的minio.exe所在目錄,

  直接在cmd下運行:minio.exe server D:\Dminio\DminioData

  啟動成功以后如下圖(啟動就是這么簡單),最后紅色字提示修改access Key和Secret Key  (默認全是minioadmin)

 注冊成服務在后台運行

  1. 地址:https://github.com/winsw/winsw/releases
  2. 將WinSW.exe復制到自定義的目錄,並重命名為自己想命名的服務名稱minio-server.exe
  3. 同目錄下創建minio-server.xml。特別注意,xml和exe必須同名
  4. 配置minio-server.xml文件
  5. 使用minio-server.exe install安裝服務
  6. 安裝完后,去服務中啟動服務。啟動成功就可以正常使用minio啦
  7. 使用minio-server.exe uninstall卸載服務
<service>
    <id>minio-server</id>
    <name>minio-server</name>
    <description>minio文件存儲服務器</description>
    <!-- 可設置環境變量 -->
    <env name="HOME" value="%BASE%"/>
    <executable>%BASE%\minio.exe</executable>
    <arguments>server "%BASE%\data"</arguments>
    <!-- <logmode>rotate</logmode> -->
    <logpath>%BASE%\logs</logpath>
    <log mode="roll-by-size-time">
      <sizeThreshold>10240</sizeThreshold>
      <pattern>yyyyMMdd</pattern>
      <autoRollAtTime>00:00:00</autoRollAtTime>
      <zipOlderThanNumDays>5</zipOlderThanNumDays>
      <zipDateFormat>yyyyMMdd</zipDateFormat>
    </log>
</service>

  

 5、瀏覽器打開 http://127.0.0.1:9000/  輸入access Key和Secret Key  (全是minioadmin)

 

 6、修改AccessKey和SecretKey(D:\Dminio\DminioData\.minio.sys\config\config.json)

 

 

用戶名即為上面的AccessKey

密碼即為上面的SecretKey

7、上傳文件,先要新建一個bucket (中文是桶的意思,我們理解為文件夾),點右下角有一個+號,選Create bucket ,

 

 再上傳一個文件,如下圖,表示成功了。

 

docker部署

搜索鏡像的命令

docker search minio

拉取鏡像的命令

docker pull minio/minio

a、啟動與安裝鏡像(這種安裝方式並沒有指定 ACCESS_KEY 和 SECRET_KEY 進行設置,安裝后可以進行 echo命令設置,)

docker run -it -p 9000:9000 -d minio/minio server /data

-it 表示運行參數,-p 表示暴露端口 ,-d 表示后台運行,data 指定目錄存放文件

echo 命令設置 ACCESS_KEY 和 SECRET_KEY

echo "admin" | docker secret create access_key -
echo "admin123456" | docker secret create secret_key -

b、自定義用戶和秘鑰安裝

這種安裝方式 MinIO 自定義 Access 和 Secret 密鑰要覆蓋 MinIO 的自動生成的密鑰,您可以將 Access 和 Secret 密鑰設為環境變量。MinIO 允許常規字符串作為 Access 和 Secret 密鑰
docker run -p 9000:9000 --name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=admin" \
-e "MINIO_SECRET_KEY=admin123456" \
-v /home/data:/data \
-v /home/config:/root/.minio \
minio/minio server /data

linux部署

先建立個存放minion的文件夾。並進入,或者直接在home目錄下,用wget下載

wget https://dl.minio.io/server/minio/release/linux-amd64/minio

若是以上的下載鏈接速度較慢,可使用國內的下載鏈接

wget http://dl.minio.org.cn/server/minio/release/linux-amd64/minio

如果:-bash: wget: 未找到命令,先安裝wget

yum -y install wget

接着為下載的minion添加執行權限(進入安裝目錄進行賦權操作)

chmod +x minio

復制minio到指定目錄,方便管理

mv minio /usr/local/

創建Minio的文件存在目錄

mkdir -p /home/minio/data

設置minio的賬號和密碼,也就是 access key and secret key(不指定,系統就是使用默認密碼,賬號和密碼都是 minioadmin)

export MINIO_ACCESS_KEY=dezcloud
export MINIO_SECRET_KEY=NBdd123456

啟動minion:(進入 /usr/local/目錄)

./minio server /home/minio/data/

如果這樣啟動的話,命令窗口不能關閉,可以設置后台啟動方式

./minio server /home/minio/data &

 如果報錯Unable to initialize the server: Unable to initialize sub-systems: Credentials missing

應該是修改了MINIO_ACCESS_KEY與 MINIO_SECRET_KEY,先設置下改過的MINIO_ACCESS_KEY 與 MINIO_SECRET_KEY ,然后再啟動就正常。

export MINIO_ACCESS_KEY=dezcloud
export MINIO_SECRET_KEY=NBdd123456
./minio server /home/minio/data &

查看是否啟動正常

ps -e|grep minio

[root@localhost local]# ps -e|grep minio 
439 pts/3 00:00:03 minio
[root@localhost local]#

設置minio開機自啟

1.打開開機自啟文件

vi /etc/rc.local

2.添加自啟腳本(如果自定義賬號密碼添加export MINIO_ACCESS_KEY=dezcloudexport MINIO_SECRET_KEY=NBdd123456)

export MINIO_ACCESS_KEY=dezcloud
export MINIO_SECRET_KEY=NBdd123456
nohup /usr/local/minio server /home/minio/data > /home/minio/data/minio.log 2>&1 &

3.保存
4.修改權限

chmod +x /etc/rc.local

5.重啟測試

reboot

登錄地址為啟動后顯示 ,默認為 ip:9000

 8、用java測試上傳功能:

import io.minio.MinioClient;
import io.minio.ObjectStat;
import io.minio.errors.MinioException;
import org.xmlpull.v1.XmlPullParserException;

import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

public class Program {
    public static void main(String[] args){
        System.out.println("hello java");
        try {
            test1();
        }catch (Exception e){
            System.out.println("test1錯誤: " + e);
        }

    }


    public static void test1()throws NoSuchAlgorithmException, IOException, InvalidKeyException, XmlPullParserException {

        try {
            // 參數為:圖床,賬號,密碼
            MinioClient minioClient = new MinioClient("http://127.0.0.1:9000", "minioadmin", "minioadmin");

            //boolean v=minioClient.bucketExists("test1");
            // 檢查文件夾是否已經存在
            boolean isExist = minioClient.bucketExists("test1");
            if(isExist) {
                System.out.println("test1文件夾已經存在了");
            }
            else {
                // 創建一個名為managertest的文件夾
                System.out.println("test1文件夾還沒存在");
                minioClient.makeBucket("test1");
            }

            // 使用putObject上傳一個文件到文件夾中。
            //參數為:文件夾,要存成的名字,要存的文件 (如果文件名相同將會復蓋原來的文件)
            minioClient.putObject("test1","tujpg2.png", "E:/Convert/testAllFile/tujpg2.jpg");
            System.out.println("上傳成功了");


            //使用getObject獲取一個文件
            // 調用statObject()來判斷對象是否存在。
            ObjectStat file=minioClient.statObject("test1", "tujpg2.png");
            System.out.println("文件名:"+file.name()+",文件大小:"+file.length());

            // 獲取1.png的流並保存到photo.png文件中。
            //參數為:文件夾,要獲得的文件,要寫入的文件
            minioClient.getObject("test1", "tujpg2.png", "E:/Convert/testAllFile/tujpg_minio.png");
            System.out.println("下載成功了");

        } catch(MinioException e) {
            System.out.println("錯誤: " + e);
        }
    }
}

 9、運行以后,test是開始手動點右下角創建的,test1是代碼創建的,里面的文件也是代碼上傳的。:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM