Minio 圖片永久訪問的問題處理

本篇文章主要說一下在Minio中通過程序上傳後的圖片,返回的地址無法對外訪問的問題。

MinioClient minioClient = new MinioClient(minio_url, minio_name, minio_pass);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String ymd = sdf.format(new Date());
        String objectName = ymd + "/" + UUID.randomUUID().toString() + (suffix != null ? suffix : "");
        minioClient.putObject(bucketName, objectName, inputStream, contentType);
        String url = minioClient.getObjectUrl(bucketName, objectName);

這裏程序得到的地址,如果你想在瀏覽器直接訪問是不行的。如果想要訪問,需要對Minio進行一些設置。

Minio的稱之爲policy 即桶策略。如果想要直接訪問圖片,需要設置Bucket的訪問策略。

官方文檔 https://docs.minio.io/cn/minio-client-complete-guide.html#mb

下面介紹兩種方法來實現永久訪問,兩種方法效果是一樣的。

一、通過管理界面實現

登錄後臺管理界面,在右下角有個紅色的加號圖標,點擊它,然後會看到下面的效果

點擊create bucket ,輸入要創建的bucket,如test

回車就可創建成功。

創建成功之後對bucket進行編輯。在頁面的右上角。找到剛剛創建的test bucket。如下圖

點擊那三個點,選擇Edit policy ,會彈出下面的彈窗。

 

在Prefix中輸入* ,即允許所有訪問。右邊的選項選擇 Read and write。

然後點擊Add 按鈕就可以了。

-----------------------------------------------------------------------------------------------------------------------------------------

二、通過Minio提供的客戶端來實現

Minio單獨提供了一個客戶端來設置Minio的服務端。

1、下載客戶端程序

下載地址 https://dl.minio.io/client/mc/release/windows-amd64/mc.exe

2、啓動一個cmd窗口,進入mc.exe的目錄

 輸入 .\mc.exe --h 可以查看mc.exe的命令幫助。

3、設置服務端

使用 minio client 將自己的 minio server 添加到 mc 的配置管理,命令如下

.\mc.exe config host add minio http://192.168.50.179:9000 3K2287Q20OW3HWQ2FJXJ L0eTMaBzVQwUgbeuo05f+qmSA
buZiWt4yZfDzrMv
Added `minio` successfully.

此命令將 http://192.168.50.179:9000 取一個別名 minio ,並交給mc進行配置管理。

4、查看minio中的桶,命令

.\mc.exe ls minio
[2019-02-18 20:34:25 CST]     0 B asiatrip\
[2019-02-18 21:15:55 CST]     0 B tonnyyy\
[2019-03-28 20:54:28 CST]     0 B xzspfj\

5、設置桶的訪問策略,命令

 .\mc.exe policy public minio/xzspfj/20190328/
Access permission for `minio/xzspfj/20190328/` is set to `public`

通過以上步驟,圖片就可以直接通過地址進行訪問了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章