Minio设置永久下载链接

问题

       minio分享文件的链接,最多支持分享七天,而需求要求设置永久可下载?

解决

       方式一: minio提供了一个客户端工具。可以直接对minio server进行配置,将指定桶设置为公共永久可下载。

       方式二:  Python api 请求修改

1.安装客户端

     首先是安装minio客户端,这个官方文档很清楚,各取所需吧.(Linux 或者windows 选择下载一个即可)

Linux 二进制文件地址:https://dl.minio.io/client/mc/release/linux-amd64/mc

windows exe文件:https://pan.baidu.com/s/1DxO0MgXqtEVg40FgiyL1CQ

2.设置自定义命令并启动

Linux下:   alias mc="./mc"

windows下: mc.exe

   至此,我们的minio client就安装完成了。

3. 添加服务端host

    使用 minio client 将我自己的 minio server 添加到 mc 的配置管理:

    accessKey:admin   

    secretKey:  password

mc config host add minio http://xxx.xxx.xxx.xxx:9000 admin  password S3v4

     这样我们才能直接管理这个 minio server 端。

     此时可以查看一下mc 文件目录下的config.json 文件内容,是否多了一个“minio” 对象:

     {
        "version": "9",
        "hosts": {
           "gcs": {
               "url": "https://storage.googleapis.com",
                "accessKey": "YOUR-ACCESS-KEY-HERE",
                "secretKey": "YOUR-SECRET-KEY-HERE",
                "api": "S3v2",
                "lookup": "dns"
            },
          "minio": {
              "url": "http://xxx.xxx.xxx.xxx:9000",
              "accessKey": "admin",
              "secretKey": "password",
              "api": "s3v4",
              "lookup": "auto"
          },

          "play": {
              "url": "https://play.min.io",
              "accessKey": "Q3AM3UQ867SPQQA43P2F",
              "secretKey": "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG",
             "api": "S3v4",
             "lookup": "auto"
          },
          "s3": {
              "url": "https://s3.amazonaws.com",
              "accessKey": "YOUR-ACCESS-KEY-HERE",
              "secretKey": "YOUR-SECRET-KEY-HERE",
              "api": "S3v4",
              "lookup": "dns"
          }
      }
  }

4. 配置下载策略

   配置策略命令查看: mc policy

mc  policy  set  download  minio/mybucket

这个命令的作用是将 server 端的 mybucket 桶设置为开放管理,可以直接通过 url 进行下载。

[桶名]/[路径]可以一直拼接到具体的文件夹或文件

类似于以下 http://xxx.xxx.xxx.xxx:9000/mybucket/xxx.zip,可用浏览器直接从此URL访问下载。

 

PS:  python 代码形式设置永久可下载

环境: python3

安装包:pip install minio

# 1.建立连接
from minio import Minio
minioClient = Minio(
                    endpoint='minio.xxx.com',    # 文件服务地址
                    access_key='admin',                       # 用户名
                    secret_key='admin',                   # 密钥
                    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)
minioClient.set_bucket_policy(bucket_name=bucket_name, policy=policy)
                     


 

 

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值