Minio设置永久下载链接
目前了解到的有如下两种方法
建议采用第二种办法
第一种方法:设置Access Policy为public
不论文件是否已经操作过分享动作,只要存储桶中有这个文件就能通过如下形式直接访问: http://x.x.x.x:9000/bucket/xxx.jpg


第二种方法:设置存储桶或路径策略为 download
必须通过minio client才能设置下载策略
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
./mc --help
# mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> [--api API-SIGNATURE]
# ./mc config host add minio http://192.168.20.102:9000 minioadmin minioadmin --api s3v4
Added `minio` successfully.
# cat ~/.mc/config.json
{
        "version": "10",
        "aliases": {
                "minio": {
                        "url": "http://192.168.20.102:9000",
                        "accessKey": "minioadmin",
                        "secretKey": "minioadmin",
                        "api": "s3v4",
                        "path": "auto"
                },
                "gcs": {
                        "url": "https://storage.googleapis.com",
                        "accessKey": "YOUR-ACCESS-KEY-HERE",
                        "secretKey": "YOUR-SECRET-KEY-HERE",
                        "api": "S3v2",
                        "path": "dns"
                },
                "local": {
                        "url": "http://localhost:9000",
                        "accessKey": "",
                        "secretKey": "",
                        "api": "S3v4",
                        "path": "auto"
                },
                "play": {
                        "url": "https://play.min.io",
                        "accessKey": "Q3AM3UQ867SPQQA43P2F",
                        "secretKey": "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG",
                        "api": "S3v4",
                        "path": "auto"
                },
                "s3": {
                        "url": "https://s3.amazonaws.com",
                        "accessKey": "YOUR-ACCESS-KEY-HERE",
                        "secretKey": "YOUR-SECRET-KEY-HERE",
                        "api": "S3v4",
                        "path": "dns"
                }
        }
}
# 查询所有的存储桶
# /usr/local/minio/bin/mc ls minio
[2022-03-10 17:53:49 CST]     0B test/
policy命令 - 管理存储桶策略
- 通过 mc policy 命令 获取 policy 相关的所有命令
# /usr/local/minio/bin/mc policy
Name:
  mc policy - manage anonymous access to buckets and objects
USAGE:
  mc policy [FLAGS] set PERMISSION TARGET
  mc policy [FLAGS] set-json FILE TARGET
  mc policy [FLAGS] get TARGET
  mc policy [FLAGS] get-json TARGET
  mc policy [FLAGS] list TARGET
FLAGS:
  --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 lines formatted output
  --debug                       enable debug output
  --insecure                    disable SSL certificate verification
  --help, -h                    show help
PERMISSION:
  Allowed policies are: [none, download, upload, public].
FILE:
  A valid S3 policy JSON filepath.
EXAMPLES:
  1. Set bucket to "download" on Amazon S3 cloud storage.
     $ mc policy set download s3/burningman2011
  2. Set bucket to "public" on Amazon S3 cloud storage.
     $ mc policy set public s3/shared
  3. Set bucket to "upload" on Amazon S3 cloud storage.
     $ mc policy set upload s3/incoming
  4. Set policy to "public" for bucket with prefix on Amazon S3 cloud storage.
     $ mc policy set public s3/public-commons/images
  5. Set a custom prefix based bucket policy on Amazon S3 cloud storage using a JSON file.
     $ mc policy set-json /path/to/policy.json s3/public-commons/images
  6. Get bucket permissions.
     $ mc policy get s3/shared
  7. Get bucket permissions in JSON format.
     $ mc policy get-json s3/shared
  8. List policies set to a specified bucket.
     $ mc policy list s3/shared
  9. List public object URLs recursively.
     $ mc policy --recursive links s3/shared/
- 查看存储桶或路径策略
# /usr/local/minio/bin/mc policy get minio/test
Access permission for `minio/test` is `public`
- 设置存储桶或路径策略为 download
# download 后面 跟存储桶或路径
# /usr/local/minio/bin/mc policy set download minio/test
Access permission for `minio/test` is set to `download`
# /usr/local/minio/bin/mc policy get minio/test
Access permission for `minio/test` is `download`


{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "*"
                ]
            },
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::test"
            ]
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "*"
                ]
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::test/*"
            ]
        }
    ]
}
注意: 这里强烈建议设置路径的策略为 download 这样 所属存储桶的策略就变为了 custom 如果直接将 bucket 设置为 download 那么就可以进入到minio客户端,虽然只能看到 设置了相应策略的 bocket ,但是匿名者可以在其中随意的创建与删除文件!
policy命令 - 管理存储桶策略
官方文档地址:http://docs.minio.org.cn/docs/master/minio-client-complete-guide
管理匿名访问存储桶和其内部内容的策略。
用法:
  mc policy [FLAGS] PERMISSION TARGET
  mc policy [FLAGS] TARGET
  mc policy list [FLAGS] TARGET
PERMISSION:
  Allowed policies are: [none, download, upload, public].
FLAGS:
  --help, -h                       显示帮助。
示例: 显示当前匿名存储桶策略
# 显示当前mybucket/myphotos/2020/子文件夹的匿名策略。
mc policy play/mybucket/myphotos/2020/
Access permission for ‘play/mybucket/myphotos/2020/’ is ‘none’
示例:设置可下载的匿名存储桶策略。
# 设置mybucket/myphotos/2020/子文件夹可匿名下载的策略。现在,这个文件夹下的对象可被公开访问。比如:mybucket/myphotos/2020/yourobjectname可通过这个URL https://play.min.io/mybucket/myphotos/2020/yourobjectname访问。
mc policy set download play/mybucket/myphotos/2020/
Access permission for ‘play/mybucket/myphotos/2020/’ is set to 'download'
示例:删除当前的匿名存储桶策略
# 删除所有mybucket/myphotos/2020/这个子文件夹下的匿名存储桶策略。
mc policy set none play/mybucket/myphotos/2020/
Access permission for ‘play/mybucket/myphotos/2020/’ is set to 'none'
第三种办法
当前存储桶策略策略是private,无法访问图片,但是进行如下设置后,就可以访问图片 (图片不用分享也能访问)

此时再查看当前存储桶策略策略,不是private了,而是custom:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "*"
                ]
            },
            "Action": [
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::aaa"
            ]
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "*"
                ]
            },
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::aaa"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:prefix": [
                        "*"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "*"
                ]
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::aaa/**"
            ]
        }
    ]
}
Minio设置永久下载链接的更多相关文章
- minio设置永久访问链接
		1.通过minio分享的链接只能支持7天. 解决方案是设置对应的bucket 可通过路径直接访问.(必须通过minio client才能设置下载策略) wget https://dl.min.io/c ... 
- OSS内文件如何设置为无时间限制的下载链接
		OSS内文件如何设置为无时间限制的下载链接 想把一些文件上传到OSS里,把OSS当网盘用,做成分享的下载链接 发现获取的链接都是有时间限制的 有没有取消这个时间限制的功能或者方法 请将object的权 ... 
- Typecho文章设置永久链接
		说明 想要给Typecho文章一个独立的url,或按照自己的格式来 这时候我们就要设置永久链接 Typecho设置文章永久链接 设置伪静态 伪静态设置要取决于是nginx还是apache,详情请参考& ... 
- DEDE列表页直接获取下载链接
		我们得去设置软件频道的东西,先点击“核心”->"内容管理模型"中的软件模型进行编辑,将softlinks加入列表字段. 然后进入“系统”->"软件频道设置&q ... 
- 使用htmlparse爬虫技术爬取电影网页的全部下载链接
		昨天,我们利用webcollector爬虫技术爬取了网易云音乐17万多首歌曲,而且还包括付费的在内,如果时间允许的话,可以获取更多的音乐下来,当然,也有小伙伴留言说这样会降低国人的知识产权保护意识,诚 ... 
- 如何用Ettercap实现“中间人攻击”(附下载链接)
		什么是“中间人攻击”? 中间人攻击(Man-in-the-Middle Attack,简称“MiTM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在 ... 
- 使用htmlparser爬虫技术爬取电影网页的全部下载链接
		昨天,我们利用webcollector爬虫技术爬取了网易云音乐17万多首歌曲,而且还包括付费的在内,如果时间允许的话,可以获取更多的音乐下来,当然,也有小伙伴留言说这样会降低国人的知识产权保护意识,诚 ... 
- Linux中让alias设置永久生效的方法详解
		Linux中让alias设置永久生效的方法详解 一.问题描述 1.有很多时候我们想要将很多操作作为一个步骤,那么在不作为系统的服务的情况下,别名是我们最好的选择,但是发现别名只能在一次会话中生效,重启 ... 
- Linux:外网域名防火墙设置导致下载失败
		问题现象: 通过IE从服务器下载文件时,提示Can't read from connection: Connection reset by peer. 别的现场都是好的,只有该现场有这个问题.所以,一 ... 
随机推荐
- dynamic + shardingsphere(4.1.1) 实现动态分库分表
			1. 主要依赖: <dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-da ... 
- python+tkinter 的布局
			from tkinter import * win = Tk() win.title("布局") # #窗口标题 win.geometry("600x500+200+20 ... 
- 从编译器对指令集的要求看API设计原则
			摘要:最近看<计算机体系结构:量化研究方法(第五版)>,发现指令集设计中的一些原则,对API设计也同样适用,给大家分享一下. 本文中的所有内容来自工作和学习过程中的心得整理,如需转载请注明 ... 
- 5-19 SpringAop | 切面编程
			Aop面向切面编程 什么是Aop 面向切面的程序设计(Aspect Oriented Programming)又译作剖面导向程序设计 和OOP(Object Oriented Programming) ... 
- Solution -「构造」专练
			记录全思路过程和正解分析.全思路过程很 navie,不过很下饭不是嘛.会持续更新的(应该). 「CF1521E」Nastia and a Beautiful Matrix Thought. 要把所有数 ... 
- Clang-format-12安装
			ubu18 clang-format安装 1.更新源 wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - ... 
- Odoo14 OWL 如何访问model方法和res_id
			首先OWL是Odoo14版本新加的功能. 因为是新加的所以并没有太多的说明文档,包括英文板文档也没有:所以你要用它再没有更详细的文档之前你得自己去看源码. 注意owl是没有do_action函数给你跳 ... 
- SQL中 Decode 和 Sign 语法的简单用法
			含义解释:decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN R ... 
- SmartIDE v1.0.23 一个非常不敏捷的发布
			SmartIDE v1.0版本(CLI Build v1.0.23.4650,Server Build v1.0.23.4646)已经发布,在超过4000 个 Builds 之后,我们终于发布了v1. ... 
- BMP位图之4位位图(二)
			起始结构 typedef struct tagBITMAPFILEHEADER { WORD bfType; //类型名,字符串"BM", DWORD bfSize; //文件大小 ... 
