Minio 图片永久访问的问题处理

本篇文章主要说一下在Minio中通过程序上传后的图片,返回的地址无法对外访问的问题。

MinioClient minioClient = new MinioClient(minio_url, minio_name, minio_pass);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String ymd = sdf.format(new Date());
        String objectName = ymd + "/" + UUID.randomUUID().toString() + (suffix != null ? suffix : "");
        minioClient.putObject(bucketName, objectName, inputStream, contentType);
        String url = minioClient.getObjectUrl(bucketName, objectName);

这里程序得到的地址,如果你想在浏览器直接访问是不行的。如果想要访问,需要对Minio进行一些设置。

Minio的称之为policy 即桶策略。如果想要直接访问图片,需要设置Bucket的访问策略。

官方文档 https://docs.minio.io/cn/minio-client-complete-guide.html#mb

下面介绍两种方法来实现永久访问,两种方法效果是一样的。

一、通过管理界面实现

登录后台管理界面,在右下角有个红色的加号图标,点击它,然后会看到下面的效果

点击create bucket ,输入要创建的bucket,如test

回车就可创建成功。

创建成功之后对bucket进行编辑。在页面的右上角。找到刚刚创建的test bucket。如下图

点击那三个点,选择Edit policy ,会弹出下面的弹窗。

 

在Prefix中输入* ,即允许所有访问。右边的选项选择 Read and write。

然后点击Add 按钮就可以了。

-----------------------------------------------------------------------------------------------------------------------------------------

二、通过Minio提供的客户端来实现

Minio单独提供了一个客户端来设置Minio的服务端。

1、下载客户端程序

下载地址 https://dl.minio.io/client/mc/release/windows-amd64/mc.exe

2、启动一个cmd窗口,进入mc.exe的目录

 输入 .\mc.exe --h 可以查看mc.exe的命令帮助。

3、设置服务端

使用 minio client 将自己的 minio server 添加到 mc 的配置管理,命令如下

.\mc.exe config host add minio http://192.168.50.179:9000 3K2287Q20OW3HWQ2FJXJ L0eTMaBzVQwUgbeuo05f+qmSA
buZiWt4yZfDzrMv
Added `minio` successfully.

此命令将 http://192.168.50.179:9000 取一个别名 minio ,并交给mc进行配置管理。

4、查看minio中的桶,命令

.\mc.exe ls minio
[2019-02-18 20:34:25 CST]     0 B asiatrip\
[2019-02-18 21:15:55 CST]     0 B tonnyyy\
[2019-03-28 20:54:28 CST]     0 B xzspfj\

5、设置桶的访问策略,命令

 .\mc.exe policy public minio/xzspfj/20190328/
Access permission for `minio/xzspfj/20190328/` is set to `public`

通过以上步骤,图片就可以直接通过地址进行访问了。

Minio是一个开源的分布式对象存储服务器,它可以提供类似于Amazon S3的服务。通过Minio,我们可以轻松地进行对象的存储和访问,包括图片。 要直接访问Minio中的图片,我们首先需要在Minio服务器上创建一个存储桶(Bucket),然后将图片上传到这个桶中。可以使用Minio提供的命令行工具、API或者各种编程语言的客户端来完成这些操作。 一旦图片上传到Minio中的存储桶中,我们可以通过以下几种方式来直接访问这些图片: 1. 通过Minio的域名加上桶名和图片路径来访问图片。例如,如果Minio的域名是`https://minio.example.com`,存储桶名是`mybucket`,图片路径是`images/example.jpg`,那么我们可以通过`https://minio.example.com/mybucket/images/example.jpg`来直接访问图片。 2. 如果设置了适当的访问权限,我们也可以在代码中使用Minio的API或者SDK来直接获取图片访问URL。通过调用相应的方法,我们可以获取到一个带有签名的URL,该URL可以直接访问Minio服务器中的图片,而不需要进行授权和身份验证。 值得注意的是,访问Minio中的图片需要提供正确的访问权限。我们可以在Minio的配置中设置桶级别或者对象级别的访问策略,来控制谁可以访问、读取或者上传图片。 总之,通过Minio,我们可以方便地进行对象存储和访问,包括直接访问图片。无论是通过URL方式还是通过API方式,我们都可以轻松地访问Minio服务器上的图片
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值