MinIO 是一個基于 Apache License v2.0 開源協定的對象存儲服務。它相容亞馬遜 S3 雲存儲服務接口,非常适合于存儲大容量非結構化的資料,例如圖檔、視訊、日志檔案、備份資料和容器/虛拟機鏡像等,而一個對象檔案可以是任意大小,從幾 kb 到最大 5T 不等。
https://docs.min.io/cn/
檔案上傳到minio後,要進行分享時,從管理界面點選分享隻能生成最多7 天有效期的連結。

或是使用sdk通過代碼調用minio的Api的請求參數也是最大7天有效期。
超過期限再次通路便看不到了
有些資源是需要一直可以通路(公共資源),需要對存儲空間(Bucket)進行一番設定方可。
存儲空間(Bucket)預設政策有如下幾種
Read Only - download
Write Only - upload
Read and Write - public
不設定 - none
從管理界面建立一個存儲空間,然後檢視政策,預設是為空的。
對存儲空間(Bucket)的政策更改,可通過管理界面或是指令行形式更改目标桶的通路政策,當然了本質上最終都是對minio server的設定。
minio server管理界面直接操作修改
minio相關的各語言SDK使用Api請求修改
minio提供的用戶端修改
當對存儲空間(Bucket)按照如上三種之一設定通路政策後,直接通過如下格式通路即可
與直接點選分享連結相比,字尾那節加密算法和憑證參數就不用了
新增一條政策,設定比對字首,再選擇Read Only 或 Read and Write後點選添加即可。
當填寫字首 * 預設該存儲空間(Bucket)下所有檔案都可以通路
當填寫特殊字首對應該存儲空間(Bucket)下特定這個字首開頭檔案可以通路
如此處設定以下d開頭的字首,那麼便隻有d開頭的檔案可以公開通路。
同時通路day.png和autumn.jpg,d字首通路成功,其他跳轉到檔案目錄下
此處以.Net為主,安裝MinIO包,快速建立一個Bucket并設定下通路政策。
提供的SDK中由設定存儲空間(Bucket)的方法,提供桶名,政策json格式字元串即可。
在官網給出的調用示例中,設定Policy的參數為一個json,其格式如下,其中部分參數是固定化的,此次需要關心的是對Resource中的Prefix設定,即管理界面中要輸入的Prefix。
其格式是由aws s3中給出的,需要了解具體格式内容的話可以參考
https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/access-policy-language-overview.html
此處設定的話我們隻設定Resource部分即存儲空間資源部分,通過SDK提供的Api傳入一個json設定。
或者從管理界面設定好後再通過SDK提供的擷取桶政策擷取json結構,是一緻的。
如此一來,同樣可以在管理界面中看到設定的政策資訊以及不需要設定有效期通路檔案。
minio提供了用來管理minioserver的client和admin,當使用docker時,都在minio/mc鏡像下
通過指令行形式管理存儲空間(Bucket)也友善,如使用docker部署,拉取minio client的鏡像來管理minio server即可
拉取minio client鏡像
建立minio client容器并進入容器内
将minio server加入到minio client下
ALIAS給綁定的minio server起個别名
YOUR-MINIO-ENDPOINT格式為 schema://host:port
YOUR-ACCESS-KEY和YOUR-SECRET-KEY即通路minio server的賬号與密碼
再直接按照給定的指令改變下桶的政策
mc policy或是mc anonymous都行,對存儲空間進行政策的一系列相關操作。
(mc policy)
(mc anonymous)
設定一個prefix的字首為public,這樣一來該部分字首的檔案便可直接通路。
以上三種方式都可以設定下minio存儲空間的政策,依照實際使用需要可以選擇不同途徑設定。如此可以對一些公共資源提供永久通路,但是也要注意安全性。
https://docs.min.io/docs/
2021-11-25,望技術有成後能回來看見自己的腳步