2023年12月3日发(作者:)
Minio设置永久下载链接一、问题描述
minio分享文件的链接,最多支持分享七天,而需求要求设置永久可下载?二、解决过程
minio提供了一个客户端工具。可以直接对minio server进行配置,将指定桶设置为公共永久可下载。1.安装客户端 首先是安装minio客户端,这个官方文档很清楚,各取所需吧.(Linux 或者windows 选择下载一个即可)2.设置自定义命令并启动Linux下: alias mc="./mc"windows下: 至此,我们的minio client就安装完成了。3. 添加服务端host 使用 minio client 将我自己的 minio server 添加到 mc 的配置管理: accessKey:admin
secretKey: password 这样我们才能直接管理这个 minio server 端。4. 配置下载策略 配置策略命令查看: mc policymc policy set download minio/mybucketmc policy set public minio/mybucketmc policy set public minio/mybucket
这个命令的作用是将 server 端的 mybucket 桶设置为开放管理,可以直接通过 url 进行下载。[桶名]/[路径]可以一直拼接到具体的文件夹或文件
PS: python 代码形式设置永久可下载环境: python3安装包:pip install minio# 1.建立连接from minio import MiniominioClient = Minio(endpoint='', # 文件服务地址access_key='admin', # 用户名secret_key='etImnEJYl', # 密钥secure=False # 设为True代表启用HTTPS)# 2.设置永久可下载#a. 桶名bucket_name = 'test_file' # 修改为自己已创建的桶名#b.通过桶权限设置方法,修改时间期限限制。policy = '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":
["*"]},"Action":["s3:GetBucketLocation","s3:ListBucket"],"Resource": ["arn:aws:s3:::%s"]},{"Effect":"Allow","Principal":{"AWS":["*"]},"Action":
["s3:GetObject"],"Resource":["arn:aws:s3:::%s/*"]}]}' % (bucket_name, bucket_name)_bucket_policy(bucket_name=bucket_name, policy=policy)
四、命令示例[root@hoolink-hz-192-168-1-153 mc]# mc policy list minio/test-hoolink-edmAccess permission for `minio/test-hoolink-edm` is set to `public`[root@hoolink-hz-192-168-1-153 mc]# mc policy list minio/test-hoolink-edmtest-hoolink-edm/* => readwrite[root@hoolink-hz-192-168-1-153 mc]#
Access permission for `minio/test-hoolink-edm-preview` is set to `public`[root@hoolink-hz-192-168-1-153 mc]#
[root@hoolink-hz-192-168-1-153 mc]#
[root@hoolink-hz-192-168-1-153 mc]# mc policyName:mc policy - manage anonymous access to buckets and objectsUSAGE:mc policy set [FLAGS] PERMISSION TARGETmc policy set-json [FLAGS] FILE TARGETmc policy get [FLAGS] TARGETmc policy get-json [FLAGS] TARGETmc policy list [FLAGS] TARGETFLAGS:--recursive, -r list recursively--config-dir value, -C value path to configuration folder (default: "/root/.mc")--quiet, -q disable progress bar display--no-color disable color theme--json enable JSON formatted output--debug enable debug output--insecure disable SSL certificate verification--help, -h show helpPERMISSION:Allowed policies are: [none, download, upload, public].FILE:A valid S3 policy JSON ES:1. Set bucket to "download" on Amazon S3 cloud storage.$ mc policy set download s3/burningman20112. Set bucket to "public" on Amazon S3 cloud storage.$ mc policy set public s3/shared3. Set bucket to "upload" on Amazon S3 cloud storage.$ mc policy set upload s3/incoming4. Set policy to "public" for bucket with prefix on Amazon S3 cloud storage.
$ mc policy set public s3/public-commons/images5. Set a custom prefix based bucket policy on Amazon S3 cloud storage using a JSON file.$ mc policy set-json /path/to/ s3/public-commons/images6. Get bucket permissions.$ mc policy get s3/shared7. Get bucket permissions in JSON format.$ mc policy get-json s3/shared8. List policies set to a specified bucket.$ mc policy list s3/shared9. List public object URLs recursively.$ mc policy --recursive links s3/shared/[root@hoolink-hz-192-168-1-153 mc]# mc policy get minio/test-hoolink-edmAccess permission for `minio/test-hoolink-edm` is `public`


发布评论