MinIo 是輕量的文件存儲(chǔ)服務(wù)机久,兼容aws S3 服務(wù)接口峦甩。 就是可以使用亞馬遜提供的存儲(chǔ)接口來(lái)上傳文件到minio嘱朽。學(xué)校的一個(gè)項(xiàng)目要求連接局域網(wǎng)能正常使用软吐,就考慮在本地搭建一個(gè)文件存儲(chǔ)服務(wù)瘩将。
docker-compse.yml
version: '2.2'
services:
minio:
image: "quay.io/minio/minio:RELEASE.2022-08-02T23-59-16Z"
container_name: minio
privileged: true
restart: always
ports:
- "9006:9006"
- "9007:9007"
volumes:
- ./aa/data/:/data/
command: server --address ":9006" --console-address ":9007" /data
environment:
- MINIO_ROOT_USER=xx
- MINIO_ROOT_PASSWORD=IjudisjIUJId498eNINxx
network_mode: host
9006 是文件存儲(chǔ)服務(wù)port,9007是web 管理界面服務(wù)port∧裥罚可以先在/aa/data/
新建一個(gè)目錄乌妙,即 bucket 的名字,如jxufe_minio建钥,會(huì)被放到mimno 容器的/data/ 藤韵。訪問(wèn)http://127.0.0.1:9007 就可以進(jìn)入存儲(chǔ)服務(wù)的圖形化界面,用戶名和密碼是 MINIO_ROOT_USER/MINIO_ROOT_PASSWORD 對(duì)應(yīng)的值熊经。
nginx
服務(wù)運(yùn)行起來(lái)之后泽艘,可以驗(yàn)證一下。
curl http://127.0.0.1:9006
接下來(lái)可以配置nginx 镐依,需要注意的是文件的上傳和下載請(qǐng)求都是由minio 服務(wù)來(lái)響應(yīng)的匹涮,因?yàn)槲沂前秧?xiàng)目的web 服務(wù)和minio 配置在一起,當(dāng)時(shí)想著文件的訪問(wèn)就由項(xiàng)目自己來(lái)處理槐壳,但這樣nginx 就不好配置了然低。
location /jxufe_minio {
proxy_pass http://127.0.0.1:9006; // 代表 http://127.0.0.1:9006/jxufe_minio/.... 來(lái)process.....
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
用接口上傳文件
直接用aws s3 提供的文件上傳api,調(diào)用接時(shí)自己配的一些配置
'OSS_SETTING' => [
'type' => 'AWS_S3', //AWS_S3务唐,還有其他oss
'id' => 'xx', //access_key 即MINIO_ROOT_USER
'key' => 'IjudisjIUJId498x', //secret_key 即MINIO_ROOT_PASSWORD
'host' => 'https://xx.xx.xx', //endpoint
'bucket' => 'jxufeminio', //bucket雳攘,為空放在根bucket下
"dir" => '', //bucket下的目錄,比如:test/
'acl' => 'public-read', //上傳后的權(quán)限控制
'max_size' => 50 * 1024 * 1024, // 用戶上傳文件大小限制
'callback_url' => '', // $callbackUrl
],
嘗試分布式minio
分布式minio
其他問(wèn)題
- bucket 不存在枫笛,/aa/data/ 新建一個(gè)目錄吨灭,即 bucket 的名字,如jxufe_minio刑巧。也可以進(jìn)入圖形化界面新建
- 上傳成功喧兄,但是無(wú)法訪問(wèn)“〕可能要進(jìn)入9007 圖形化界面吠冤,把該bucket 設(shè)置為public
參考文章