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
posted @ 2023-06-02 15:30  惊蛰2020  阅读(832)  评论(0编辑  收藏  举报