目前了解到的有如下两种方法

建议采用第二种办法

第一种方法:设置Access Policy为public

不论文件是否已经操作过分享动作,只要存储桶中有这个文件就能通过如下形式直接访问: http://x.x.x.x:9000/bucket/xxx.jpg

第二种方法:设置存储桶或路径策略为 download

必须通过minio client才能设置下载策略

  1. wget https://dl.min.io/client/mc/release/linux-amd64/mc
  2. chmod +x mc
  3. ./mc --help
  4. # mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> [--api API-SIGNATURE]
  5. # ./mc config host add minio http://192.168.20.102:9000 minioadmin minioadmin --api s3v4
  6. Added `minio` successfully.
  7. # cat ~/.mc/config.json
  8. {
  9. "version": "10",
  10. "aliases": {
  11. "minio": {
  12. "url": "http://192.168.20.102:9000",
  13. "accessKey": "minioadmin",
  14. "secretKey": "minioadmin",
  15. "api": "s3v4",
  16. "path": "auto"
  17. },
  18. "gcs": {
  19. "url": "https://storage.googleapis.com",
  20. "accessKey": "YOUR-ACCESS-KEY-HERE",
  21. "secretKey": "YOUR-SECRET-KEY-HERE",
  22. "api": "S3v2",
  23. "path": "dns"
  24. },
  25. "local": {
  26. "url": "http://localhost:9000",
  27. "accessKey": "",
  28. "secretKey": "",
  29. "api": "S3v4",
  30. "path": "auto"
  31. },
  32. "play": {
  33. "url": "https://play.min.io",
  34. "accessKey": "Q3AM3UQ867SPQQA43P2F",
  35. "secretKey": "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG",
  36. "api": "S3v4",
  37. "path": "auto"
  38. },
  39. "s3": {
  40. "url": "https://s3.amazonaws.com",
  41. "accessKey": "YOUR-ACCESS-KEY-HERE",
  42. "secretKey": "YOUR-SECRET-KEY-HERE",
  43. "api": "S3v4",
  44. "path": "dns"
  45. }
  46. }
  47. }
  48. # 查询所有的存储桶
  49. # /usr/local/minio/bin/mc ls minio
  50. [2022-03-10 17:53:49 CST] 0B test/

policy命令 - 管理存储桶策略

  1. 通过 mc policy 命令 获取 policy 相关的所有命令
  1. # /usr/local/minio/bin/mc policy
  2. Name:
  3. mc policy - manage anonymous access to buckets and objects
  4. USAGE:
  5. mc policy [FLAGS] set PERMISSION TARGET
  6. mc policy [FLAGS] set-json FILE TARGET
  7. mc policy [FLAGS] get TARGET
  8. mc policy [FLAGS] get-json TARGET
  9. mc policy [FLAGS] list TARGET
  10. FLAGS:
  11. --recursive, -r list recursively
  12. --config-dir value, -C value path to configuration folder (default: "/root/.mc")
  13. --quiet, -q disable progress bar display
  14. --no-color disable color theme
  15. --json enable JSON lines formatted output
  16. --debug enable debug output
  17. --insecure disable SSL certificate verification
  18. --help, -h show help
  19. PERMISSION:
  20. Allowed policies are: [none, download, upload, public].
  21. FILE:
  22. A valid S3 policy JSON filepath.
  23. EXAMPLES:
  24. 1. Set bucket to "download" on Amazon S3 cloud storage.
  25. $ mc policy set download s3/burningman2011
  26. 2. Set bucket to "public" on Amazon S3 cloud storage.
  27. $ mc policy set public s3/shared
  28. 3. Set bucket to "upload" on Amazon S3 cloud storage.
  29. $ mc policy set upload s3/incoming
  30. 4. Set policy to "public" for bucket with prefix on Amazon S3 cloud storage.
  31. $ mc policy set public s3/public-commons/images
  32. 5. Set a custom prefix based bucket policy on Amazon S3 cloud storage using a JSON file.
  33. $ mc policy set-json /path/to/policy.json s3/public-commons/images
  34. 6. Get bucket permissions.
  35. $ mc policy get s3/shared
  36. 7. Get bucket permissions in JSON format.
  37. $ mc policy get-json s3/shared
  38. 8. List policies set to a specified bucket.
  39. $ mc policy list s3/shared
  40. 9. List public object URLs recursively.
  41. $ mc policy --recursive links s3/shared/
  1. 查看存储桶或路径策略
  1. # /usr/local/minio/bin/mc policy get minio/test
  2. Access permission for `minio/test` is `public`
  1. 设置存储桶或路径策略为 download
  1. # download 后面 跟存储桶或路径
  2. # /usr/local/minio/bin/mc policy set download minio/test
  3. Access permission for `minio/test` is set to `download`
  4. # /usr/local/minio/bin/mc policy get minio/test
  5. Access permission for `minio/test` is `download`



  1. {
  2. "Version": "2012-10-17",
  3. "Statement": [
  4. {
  5. "Effect": "Allow",
  6. "Principal": {
  7. "AWS": [
  8. "*"
  9. ]
  10. },
  11. "Action": [
  12. "s3:GetBucketLocation",
  13. "s3:ListBucket"
  14. ],
  15. "Resource": [
  16. "arn:aws:s3:::test"
  17. ]
  18. },
  19. {
  20. "Effect": "Allow",
  21. "Principal": {
  22. "AWS": [
  23. "*"
  24. ]
  25. },
  26. "Action": [
  27. "s3:GetObject"
  28. ],
  29. "Resource": [
  30. "arn:aws:s3:::test/*"
  31. ]
  32. }
  33. ]
  34. }

注意: 这里强烈建议设置路径的策略为 download 这样 所属存储桶的策略就变为了 custom 如果直接将 bucket 设置为 download 那么就可以进入到minio客户端,虽然只能看到 设置了相应策略的 bocket ,但是匿名者可以在其中随意的创建与删除文件!

policy命令 - 管理存储桶策略

官方文档地址:http://docs.minio.org.cn/docs/master/minio-client-complete-guide

管理匿名访问存储桶和其内部内容的策略。

  1. 用法:
  2. mc policy [FLAGS] PERMISSION TARGET
  3. mc policy [FLAGS] TARGET
  4. mc policy list [FLAGS] TARGET
  5. PERMISSION:
  6. Allowed policies are: [none, download, upload, public].
  7. FLAGS:
  8. --help, -h 显示帮助。

示例: 显示当前匿名存储桶策略

  1. # 显示当前mybucket/myphotos/2020/子文件夹的匿名策略。
  2. mc policy play/mybucket/myphotos/2020/
  3. Access permission for play/mybucket/myphotos/2020/’ is none

示例:设置可下载的匿名存储桶策略。

  1. # 设置mybucket/myphotos/2020/子文件夹可匿名下载的策略。现在,这个文件夹下的对象可被公开访问。比如:mybucket/myphotos/2020/yourobjectname可通过这个URL https://play.min.io/mybucket/myphotos/2020/yourobjectname访问。
  2. mc policy set download play/mybucket/myphotos/2020/
  3. Access permission for play/mybucket/myphotos/2020/’ is set to 'download'

示例:删除当前的匿名存储桶策略

  1. # 删除所有mybucket/myphotos/2020/这个子文件夹下的匿名存储桶策略。
  2. mc policy set none play/mybucket/myphotos/2020/
  3. Access permission for play/mybucket/myphotos/2020/’ is set to 'none'

第三种办法

当前存储桶策略策略是private,无法访问图片,但是进行如下设置后,就可以访问图片 (图片不用分享也能访问)

此时再查看当前存储桶策略策略,不是private了,而是custom:

  1. {
  2. "Version": "2012-10-17",
  3. "Statement": [
  4. {
  5. "Effect": "Allow",
  6. "Principal": {
  7. "AWS": [
  8. "*"
  9. ]
  10. },
  11. "Action": [
  12. "s3:GetBucketLocation"
  13. ],
  14. "Resource": [
  15. "arn:aws:s3:::aaa"
  16. ]
  17. },
  18. {
  19. "Effect": "Allow",
  20. "Principal": {
  21. "AWS": [
  22. "*"
  23. ]
  24. },
  25. "Action": [
  26. "s3:ListBucket"
  27. ],
  28. "Resource": [
  29. "arn:aws:s3:::aaa"
  30. ],
  31. "Condition": {
  32. "StringEquals": {
  33. "s3:prefix": [
  34. "*"
  35. ]
  36. }
  37. }
  38. },
  39. {
  40. "Effect": "Allow",
  41. "Principal": {
  42. "AWS": [
  43. "*"
  44. ]
  45. },
  46. "Action": [
  47. "s3:GetObject"
  48. ],
  49. "Resource": [
  50. "arn:aws:s3:::aaa/**"
  51. ]
  52. }
  53. ]
  54. }

Minio设置永久下载链接的更多相关文章

  1. minio设置永久访问链接

    1.通过minio分享的链接只能支持7天. 解决方案是设置对应的bucket 可通过路径直接访问.(必须通过minio client才能设置下载策略) wget https://dl.min.io/c ...

  2. OSS内文件如何设置为无时间限制的下载链接

    OSS内文件如何设置为无时间限制的下载链接 想把一些文件上传到OSS里,把OSS当网盘用,做成分享的下载链接 发现获取的链接都是有时间限制的 有没有取消这个时间限制的功能或者方法 请将object的权 ...

  3. Typecho文章设置永久链接

    说明 想要给Typecho文章一个独立的url,或按照自己的格式来 这时候我们就要设置永久链接 Typecho设置文章永久链接 设置伪静态 伪静态设置要取决于是nginx还是apache,详情请参考& ...

  4. DEDE列表页直接获取下载链接

    我们得去设置软件频道的东西,先点击“核心”->"内容管理模型"中的软件模型进行编辑,将softlinks加入列表字段. 然后进入“系统”->"软件频道设置&q ...

  5. 使用htmlparse爬虫技术爬取电影网页的全部下载链接

    昨天,我们利用webcollector爬虫技术爬取了网易云音乐17万多首歌曲,而且还包括付费的在内,如果时间允许的话,可以获取更多的音乐下来,当然,也有小伙伴留言说这样会降低国人的知识产权保护意识,诚 ...

  6. 如何用Ettercap实现“中间人攻击”(附下载链接)

    什么是“中间人攻击”? 中间人攻击(Man-in-the-Middle Attack,简称“MiTM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在 ...

  7. 使用htmlparser爬虫技术爬取电影网页的全部下载链接

    昨天,我们利用webcollector爬虫技术爬取了网易云音乐17万多首歌曲,而且还包括付费的在内,如果时间允许的话,可以获取更多的音乐下来,当然,也有小伙伴留言说这样会降低国人的知识产权保护意识,诚 ...

  8. Linux中让alias设置永久生效的方法详解

    Linux中让alias设置永久生效的方法详解 一.问题描述 1.有很多时候我们想要将很多操作作为一个步骤,那么在不作为系统的服务的情况下,别名是我们最好的选择,但是发现别名只能在一次会话中生效,重启 ...

  9. Linux:外网域名防火墙设置导致下载失败

    问题现象: 通过IE从服务器下载文件时,提示Can't read from connection: Connection reset by peer. 别的现场都是好的,只有该现场有这个问题.所以,一 ...

随机推荐

  1. 静态static关键字概述和静态static关键字修饰成员变量

    static关键字 概述 关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属 于某个对象的.也就是说,既然属于类,就可以不靠创建对象来调用了 ...

  2. git的工作原理和git项目创建及克隆

    Git基本理论(重要)三个区域Git本地有三个工作区域:工作目录(Working Directory).暂存区(Stage/Index).资源库(Repository或Git Directory).如 ...

  3. vue封装原生的可预览裁剪上传图片插件H5,PC端都可以使用

    思路:1.先做出一个上传的图片的上传区 <!-- 上传区 --> <label for="fileUp"> <div class="upBo ...

  4. 今天安装了eclipse,myeclipse,满满的回忆

    代码半生,编码半世,ideacode失效,安装了eclipse,那熟悉的界面,俨然又回到了从前,当初我们还在用structs,eclipse,webwork,那时候还在用jbuilder,但是算是老套 ...

  5. springboot修改文件上传大小

    servlet配置文件上传限制 spring: servlet: multipart: max-file-size: 1000MB max-request-size: 1000MB mysql设置re ...

  6. Java多线程交替打印

    1. synchronized实现双线程交替打印 class Print implements Runnable{ static int i=0; static final int n=100; @O ...

  7. Chrome实现自动化测试:录制回放网页动作

    Chrome 浏览器是真的恐怖,它会把相关的小工具都卷死.从它诞生至今,创造了一个又一个的传奇,现在可以看到基于它的操作系统 chrome os ,还能买到用它做系统的笔记本电脑. 最近,新版本支持录 ...

  8. 【Unity学习笔记】掌握MoneBehavior中的重要属性、方法

    一.重要属性 1-1.获取自己依附的GameObject using System.Collections; using System.Collections.Generic; using Unity ...

  9. 7.5 The Morning after Halloween

    本题主要是存储的问题,在存储上笔者原先的代码占用了大量的内存空间 这边笔者采用暴力的思想直接硬开所有情况的16^6的数组来存储该问题,当然这在时间上是十分浪费的,因为初始化实在太慢了,剩下的就是状态转 ...

  10. 第二十天python3 正则表达式

    正则表达式 Regular Expression,缩写为regex.regexp.RE等:分类 1.BRE 基本正则表达式,grep.sed.vi等软件支持,vim有扩展: 2.ERE 扩展正则表达式 ...