当前位置: 首页 > news >正文

广州 科技网站建设公司360指数

广州 科技网站建设公司,360指数,昆山高端网站建设公司哪家好,微博wordpress在上一篇文章中,我们已经在云服务器中安装并开启了minio服务,本章我们将为大家讲解如何利用程序将文件上传到minio桶中 下面介绍MinIO中的几个核心概念,这些概念在所有的对象存储服务中也都是通用的。 - **对象(Object&#xff0…

在上一篇文章中,我们已经在云服务器中安装并开启了minio服务,本章我们将为大家讲解如何利用程序将文件上传到minio桶中

下面介绍MinIO中的几个核心概念,这些概念在所有的对象存储服务中也都是通用的。

- **对象(Object)**

  对象是实际的数据单元,例如我们上传的一个图片。

- **存储桶(Bucket)**

  存储桶是用于组织对象的命名空间,类似于文件夹。每个存储桶可以包含多个对象。

- **端点(Endpoint)**

  端点是MinIO服务器的网络地址,用于访问存储桶和对象,例如`http://192.168.10.101:9000`

  **注意:**

  `9000`为MinIO的API的默认端口,前边配置的`9001`以为管理页面端口。

- **Access Key 和 Secret Key**

  **Access Key**是用于标识和验证访问者身份的唯一标识符,相当于用户名。

  **Secret Key**是与**Access Key**关联的密码,用于验证访问者的身份。

首先

确保你的云服务器中开启了minio服务,然后去浏览器访问IP+PORT进行访问,比如:http://192.168.1.236:9001

在上一篇文章中,我们修改了用户名和密码,分别为admin   12345678,输入登录即可

另外的一些功能可以参考官方文档,这里指简单讲解

点击创建桶后,输入桶名即可,一些权限默认即可,不需要特别设置

然后去用户中查看

 

minio界面上传文件

 **访问图片**

   - **图片URL**

     由于MinIO提供了HTTP访问功能,所以可以通过浏览器直接访问对象。对象URL为MinIO的`Endpoint`+`对象的存储路径`,例如下图中的图片对象的URL为http://211.159.166.206:9000/doctorimg/37.jpg]

 不出意外的话,使用浏览器访问上述URL,会得到如下响应,很显然是没有访问权限。

若想继续访问图片,需要修改图片**所在桶**的访问权限,如下图所示

若想继续访问图片,需要修改图片**所在桶**的访问权限,

     如上图所示,可选的访问权限共有三个选项,分别是`Private`、`Public`和`Custom`,具体说明如下

     - `Private`

       只允许桶的所有者对该桶进行读写。

     - `Public`

       允许所有人对该桶进行读写。

     - `Custom`

       自定义访问权限。

     若想将权限设置为只允许所有者写,但允许所有人读,就需要自定义访问权限。自定义访问权限,需要使用一个规定格式的JSON字符串进行描述,具体格式可参考[官方文档]

     例如以下JSON字符串表达的含义是:允许(`Allow`)所有人(`*`)读取(`s3:GetObject`)指定桶(`doctorimg`)的所有内容。

{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"AWS": ["*"]},"Action": ["s3:GetObject"],"Resource": ["arn:aws:s3:::doctorimg/*"]}]
}

 然后再次访问

Java程序整合minio

MinIO提供了多种语言的SDK供开发者使用,本项目需要用到Java SDK,下面通过一个简单案例熟悉一下其基本用法,具体内容可参考[官方文档](https://www.minio.org.cn/docs/minio/linux/developers/java/minio-java.html#)。

1. **创建一个Maven项目**

2. **引入如下依赖**

   <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.3</version></dependency>

 注意  在此时很有可能会报依赖不兼容的错误

我自己也查询了许多资料,如果你是大佬,那你可以梳理清楚,各依赖相互兼容的关系,当我没说,如果你是小白,可以参考我的方法:在引入两个与其配套的底层依赖

 <!--minio--><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>${minio.version}</version></dependency><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>${okhttp3.version}</version> <!-- 或者尝试更低版本 --></dependency><dependency><groupId>com.squareup.okio</groupId><artifactId>okio</artifactId><version>${okio.version}</version></dependency><minio.version>8.5.3</minio.version><okhttp3.version>4.8.1</okhttp3.version><okio.version>2.8.0</okio.version>

3. **编写如下内容**

package com.example.minio;import io.minio.*;
import io.minio.errors.MinioException;import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;public class testminio {public static void main(String[] args) throws IOException, NoSuchAlgorithmException, InvalidKeyException {try {// 构造 MinIO Client 实例,用于连接 MinIO 服务器// MinioClient.builder() 是 MinIO 客户端的构建器模式,使用 endpoint() 方法设置服务器地址// 使用 credentials() 方法设置访问凭证(用户名和密码)MinioClient minioClient = MinioClient.builder().endpoint("http://211.159.166.206:9000") // MinIO 服务器地址,包含 IP 和端口.credentials("admin", "12345678")        // 设置 MinIO 访问的用户名和密码.build();// 检查是否已经存在名为 doctorimg 的桶(bucket)boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket("doctorimg").build());if (!found) {// 如果桶不存在,则创建一个名为 doctorimg 的桶minioClient.makeBucket(MakeBucketArgs.builder().bucket("doctorimg").build());// 设置桶的访问权限为公开,允许所有用户进行 GetObject 操作(即可以读取桶中的对象)// 设置桶策略的 JSON 格式,允许所有用户访问 doctorimg 桶中的对象String policy = "{\n" +"  \"Statement\" : [ {\n" +"    \"Action\" : \"s3:GetObject\",\n" +"    \"Effect\" : \"Allow\",\n" +"    \"Principal\" : \"*\",\n" +"    \"Resource\" : \"arn:aws:s3:::doctorimg/*\"\n" +"  } ],\n" +"  \"Version\" : \"2012-10-17\"\n" +"}";// 将设置的策略应用到 doctorimg 桶上minioClient.setBucketPolicy(SetBucketPolicyArgs.builder().bucket("doctorimg").config(policy).build());} else {// 如果桶已经存在,打印提示信息System.out.println("Bucket 'doctorimg' already exists.");}// 上传文件到 MinIO 的 doctorimg 桶中// 使用 UploadObjectArgs.builder() 方法构建上传参数// bucket() 设置目标桶名// object() 设置文件在桶中的名称// filename() 设置要上传的文件的本地路径minioClient.uploadObject(UploadObjectArgs.builder().bucket("doctorimg")               // 上传到的桶名.object("37.jpg")                  // 文件在桶中存储时的名称.filename("F:\\hospitalsystem\\upload\\doctor_img\\37.jpg") // 本地文件的绝对路径.build());// 文件上传成功后,打印提示信息System.out.println("上传成功");} catch (MinioException e) {// 捕获 MinIO 客户端异常并打印错误信息System.out.println("Error occurred: " + e);}}
}

   运行上述代码,然后查看MinIO管理页面,观察是否上传成功。

注意

 String policy = "{\n" +"  \"Statement\" : [ {\n" +"    \"Action\" : \"s3:GetObject\",\n" +"    \"Effect\" : \"Allow\",\n" +"    \"Principal\" : \"*\",\n" +"    \"Resource\" : \"arn:aws:s3:::doctorimg/*\"\n" +"  } ],\n" +"  \"Version\" : \"2012-10-17\"\n" +"}";

此段代码表示设置权限,不同jdk版本对支持不同类型,jdk8只支持json,但jdk22支持文本类型,大家可以用文心一言生成适合你版本的类型

希望本篇博客能帮助你从入门到精通Minio,快速在项目中应用它的强大功能。

http://www.dinnco.com/news/210.html

相关文章:

  • 义乌网站开发公司如何建立自己的网络销售
  • 网站建站中国最新消息
  • 做网站开发的女生多吗营销和销售的区别在哪里
  • 智能网站建设软件石家庄关键词优化软件
  • 广州seo培训机构湖南seo推广
  • 做低首付的汽车网站有哪些网络营销的营销理念
  • 企业 办公 网站模板自动化测试培训机构哪个好
  • 鱼台县建设局网站刷关键词要刷大词吗
  • 同心县建设局网站seo深度解析
  • 建设定制网站搜索引擎网络排名
  • 洛阳航迪科技网站建设公司怎么样百度推广效果怎样一天费用
  • 邓州网站建设网站运营推广的方法有哪些
  • 白头鹰网站一天可以做多少任务北京刚刚传来特大消息
  • 政府门户网站建设问卷调查上海关键词排名搜索
  • 利川做网站做小程序公司哪家好
  • 城乡互动联盟网站建设百度游戏中心app
  • 用asp做网站怎么布局黄页88
  • 武汉便民信息发布平台福州百度seo
  • 网站目录命名规则外贸google推广
  • 营销型网站建设套餐石家庄关键词优化平台
  • 做公司产品展示网站西安百度推广代运营
  • 什么网站做ppt好seo岗位是什么意思
  • 怎么做外围网站代理东莞优化网站关键词优化
  • 为什么网站很少做全屏百度收录查询网址
  • 乾县网站建设太原百度快照优化排名
  • 个人网站怎么做微信支付西安百度推广网站建设
  • 购物网站建设平台网络营销策划推广公司
  • 淘宝内部优惠券网站建设深圳 网站制作
  • 南昌做网站要多少钱近两年网络营销成功案例
  • 产品设计专业最好的大学seo优化效果怎么样