minio挂载操作
kodbox+minio实现存储可视化
挂载端安装s3fs-fuse
apt install s3fs-fuse
https://github.com/s3fs-fuse/s3fs-fuse
挂载minio
https://github.com/lukewaite/cookbook/blob/master/docs/zh_CN/s3fs-fuse-with-minio.md
存放minio的access_key和secret_key
echo "access_key:secret_key" > /etc/s3cred
chmod 600 /etc/s3cred
创建一个挂载目录
mkdir /s3
挂载存储桶
容器内挂载需要以特权模式启动否则会报错
直接挂载存储桶可能会导致挂载后目录中数据不可见,但是可以进入操作
s3fs <bucket> /s3 -o passwd_file=/etc/s3cred,use_path_request_style,url=http://minio-server:9000 -o allow_other -o umask=000 -o dbglevel=info -f -o curldbg
为minio中的bucket - /etc/s3cred 为存放密钥路径
- s3fs与Minio一起使用时需要
use_path_request_style
。如果您不使用它,则无法在挂载的目录中查看或复制文件。 - 如果只想挂载bucket中的某个目录(容器内部好像没能实现,只能挂载桶)
s3fs <bucket>:/dir /s3 -o passwd_file=/etc/s3cred,use_path_request_style,url=http://minio-server:9000 -o allow_other -o umask=000 -o dbglevel=info -f -o curldbg
检查挂载
mount | grep s3fs
s3fs on /s3 type fuse.s3fs (rw,nosuid,nodev,relatime,user_id=0,group_id=F0)
minio客户端mc
客户端copy minio文件
#新增minio配置
mc config host add minio http://192.168.2.108:9000 admin abcdefg
#拷贝文件/文件夹
mc cp -r minio/dyg-fzzn/sample /data/
minio上传文件夹
#!/bin/bash
#$1 传需要上传的文件/目录
#$2 传minio中的目标目录
function minio() {
host=minio.example
s3_key=minio_admin
s3_secret=minio_secret
resource="$3/$1" #自己定义传到minio的目录
content_type="application/octet-stream"
date=`date -R`
_signature="PUT\n\n${content_type}\n${date}\n${resource}"
signature=`echo -en ${_signature} | openssl sha1 -hmac ${s3_secret} -binary | base64`
curl -X PUT -T "$1" \
-H "Host: ${host}" \
-H "Date: ${date}" \
-H "Content-Type: ${content_type}" \
-H "Authorization: AWS ${s3_key}:${signature}" \
http://${host}${resource}
#判定有些问题,返回值非200也会成功
if [ $? -eq 0 ];then
echo "upload $1 success!"
else
echo "upload $1 error!!!"
fi
}
#多级目录递归
function listFiles()
{
for file in $1*;
do
if [ -f "$file" ]; then
echo $file
minio $file
else
listFiles "$file/" " $2" $3
fi
done
}
listFiles $1 "" $2