minio 对象存储 引入原因 1、文件上传功能,不自己写上传接口 2、不用应用服务器 nginx 部署 3、权限设置,不希望有数据对外展示 4、阿里云对象存储收费
相关内容 安装 1 2 3 4 5 6 docker pull minio/minio ## 9000为api接口,9090为控制台管理界面接口 docker run -p 9000:9000 -p 9090:9090 --name minio -v H:\minio\data:/data -v H:\minio\config:/root/.minio minio/minio server --console-address ":9090" /data ## 浏览器访问127.0.0.1:9090 默认登录minioadmin/minioadmin
客户端使用 1 2 3 4 5 docker pull minio/mc docker run minio/mc ls play docker run -it --entrypoint=/bin/sh minio/mc mc config host add minio http://api-minio.foxhello.com 52trhHBInpg9UGpm 秘钥 --api s3v4 mc ls minio
curl上传 centos正常,mac有问题 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # 设置Access Key和Secret Key ACCESS_KEY="upload" SECRET_KEY="" # 设置上传的文件路径、Bucket名称和Object名称 FILE_PATH="/Volumes/T7/project/project_fmzh/test.md" BUCKET_NAME="test" OBJECT_NAME="test.md" # 构建HTTP PUT请求,并添加认证头部信息 #DATE=$(date -u "+%a, %d %b %Y %H:%M:%S GMT") #DATE=$(date "+%Y%m%dT%H%M%S%z") DATE="Tue, 21 Feb 2023 05:41:57 GMT" CONTENT_TYPE=$(file --mime-type $FILE_PATH | awk '{print $2}') CONTENT_MD5=$(openssl md5 -binary $FILE_PATH | base64) STRING_TO_SIGN="PUT\n$CONTENT_MD5\n$CONTENT_TYPE\n$DATE\nx-amz-acl:public-read\n/$BUCKET_NAME/$OBJECT_NAME" SIGNATURE=$(echo -en "$STRING_TO_SIGN" | openssl sha1 -binary -hmac "$SECRET_KEY" | base64) curl -X PUT -T "$FILE_PATH" \ -H "Host: minio-api.foxhello.com" \ -H "Date: $DATE" \ -H "Content-Type: $CONTENT_TYPE" \ -H "Content-MD5: $CONTENT_MD5" \ -H "Authorization: AWS $ACCESS_KEY:$SIGNATURE" \ -H "x-amz-acl:public-read" \ "https://minio-api.foxhello.com/$BUCKET_NAME/$OBJECT_NAME"
存在问题 1、修改管理员密码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # 修改密码 export MINIO_ACCESS_KEY=minioadmin export MINIO_SECRET_KEY=*** docker run -d \ --name minio \ --restart=always \ -p 9000:9000 \ -p 9001:9001 \ -e "MINIO_ROOT_USER=minioAlan" \ -e "MINIO_ROOT_PASSWORD=miniokillccc" \ -v /www/docker/minio/config:/root/.minio \ -v /www/docker/minio/data:/data \ minio/minio \ server /data --console-address ":9001" --address ":9000"
2、对外如何访问 见代码 3、预览不能展示图片 见 4 4、永久访问
1 2 3 4 5 6 7 # 将bucket设置为public jpg直接能在浏览器打开 #直接下载: http://api-minio.foxhello.com/fmzh/logo.png #可在浏览器打开: http://api-minio.foxhello.com/fmzh/logo.png?response-content-type=image%2Fpng
参考
minio 使用 docker 部署
minio 源码-GitHub
minio 官网文档-中文 版本较旧
minio 官网
minio 官网文档-英文 版本较新 以此学习
minio 包 maven 下载
minio 修改密码
minio docker 部署 设置密码