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

MinIo-SDK

3.2.5 SDK

3.2.5.1上传文件

MinIO提供多个语言版本SDK的支持,下边找到java版本的文档:

地址:https://docs.min.io/docs/java-client-quickstart-guide.html

最低需求Java 1.8或更高版本:

maven依赖如下:

XML
<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.4.3</version>
</dependency>
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.8.1</version>
</dependency>

在media-service工程添加此依赖。

参数说明:

需要三个参数才能连接到minio服务。

参数

说明

Endpoint

对象存储服务的URL

Access Key

Access key就像用户ID,可以唯一标识你的账户。

Secret Key

Secret key是你账户的密码。

示例代码如下:

Java
import io.minio.BucketExistsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.UploadObjectArgs;
import io.minio.errors.MinioException;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
public class FileUploader {
  public static void main(String[] args)throws IOException, NoSuchAlgorithmException, InvalidKeyException {
    try {
      // Create a minioClient with the MinIO server playground, its access key and secret key.
      MinioClient minioClient =
          MinioClient.builder()
              .endpoint("https://play.min.io")
              .credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
              .build();
      // Make 'asiatrip' bucket if not exist.
      boolean found =
          minioClient.bucketExists(BucketExistsArgs.builder().bucket("asiatrip").build());
      if (!found) {
        // Make a new bucket called 'asiatrip'.
        minioClient.makeBucket(MakeBucketArgs.builder().bucket("asiatrip").build());
      } else {
        System.out.println("Bucket 'asiatrip' already exists.");
      }
      // Upload '/home/user/Photos/asiaphotos.zip' as object name 'asiaphotos-2015.zip' to bucket
      // 'asiatrip'.
      minioClient.uploadObject(
          UploadObjectArgs.builder()
              .bucket("asiatrip")
              .object("asiaphotos-2015.zip")
              .filename("/home/user/Photos/asiaphotos.zip")
              .build());
      System.out.println(
          "'/home/user/Photos/asiaphotos.zip' is successfully uploaded as "
              + "object 'asiaphotos-2015.zip' to bucket 'asiatrip'.");
    } catch (MinioException e) {
      System.out.println("Error occurred: " + e);
      System.out.println("HTTP trace: " + e.httpTrace());
    }
  }
}

参考示例在media-service工程中 测试上传文件功能,

首先创建一个用于测试的bucket

点击“Manage”修改bucket的访问权限

选择public权限

测试代码如下:

Java
package com.xuecheng.media;

import io.minio.BucketExistsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.UploadObjectArgs;
import io.minio.errors.MinioException;

import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

/**
 * @description
测试MinIO
 * @author Mr.M
 * @date 2022/9/11 21:24
 * @version 1.0
 */
public class MinIOTest {

 static MinioClient minioClient =
         MinioClient.builder()
                 .endpoint("http://192.168.101.65:9000")
                 .credentials("minioadmin", "minioadmin")
                 .build();


 //上传文件
public static void upload()throws IOException, NoSuchAlgorithmException, InvalidKeyException {
 try {
  boolean found =
          minioClient.bucketExists(BucketExistsArgs.builder().bucket("testbucket").build());
  //检查testbucket桶是否创建,没有创建自动创建
  if (!found) {
   minioClient.makeBucket(MakeBucketArgs.builder().bucket("testbucket").build());
  } else {
   System.out.println("Bucket 'testbucket' already exists.");
  }
  //上传1.mp4
  minioClient.uploadObject(
          UploadObjectArgs.builder()
                  .bucket("testbucket")
                  .object("1.mp4")
                  .filename("D:\\develop\\upload\\1.mp4")
                  .build());
  //上传1.avi,上传到avi子目录
  minioClient.uploadObject(
          UploadObjectArgs.builder()
                  .bucket("testbucket")
                  .object("avi/1.avi")
                  .filename("D:\\develop\\upload\\1.avi")
                  .build());
  System.out.println("上传成功");
 } catch (MinioException e) {
  System.out.println("Error occurred: " + e);
  System.out.println("HTTP trace: " + e.httpTrace());
 }

}
public static void main(String[] args)throws IOException, NoSuchAlgorithmException, InvalidKeyException {
 upload();
}


}

执行main方法,共上传两个文件,1.mp4上传到桶根目录下,1.avi上传到 桶中的avi目录下,avi目录会自动创建。

上传成功,通过web控制台查看文件,并预览文件。

相关文章:

MinIo-SDK

3.2.5 SDK 3.2.5.1上传文件 MinIO提供多个语言版本SDK的支持&#xff0c;下边找到java版本的文档&#xff1a; 地址&#xff1a;https://docs.min.io/docs/java-client-quickstart-guide.html 最低需求Java 1.8或更高版本: maven依赖如下&#xff1a; XML<dependency&g…...

系统分析师真题2018试卷相关概念一

面向对象的基本概念: 对象的三要素为:属性(数据)、方法(操作)、对象ID(标识)UML2.0包括14种图: 类图(class diagram):类图描述一组类、接口、协作和他们之间的关系。在OO系统的建模中,最常见的图就是类图。类图给出了系统的静态设计图,活动类的类图给出了系统的静…...

身为大学生,你不会还不知道有这些学生福利吧!!!!

本文介绍的是利用学生身份可以享受到的相关学生优惠权益&#xff0c;但也希望各位享受权利的同时不要忘记自己的义务&#xff0c;不要售卖、转手自己的学生优惠资格&#xff0c;使得其他同学无法受益。 前言 高考已经过去&#xff0c;我们也将迎来不同于以往的大学生活&#x…...

试题 算法训练 藏匿的刺客

问题描述 强大的kAc建立了强大的帝国&#xff0c;但人民深受其学霸及23文化的压迫&#xff0c;于是勇敢的鹏决心反抗。   kAc帝国防守森严&#xff0c;鹏带领着小伙伴们躲在城外的草堆叶子中&#xff0c;称为叶子鹏。   kAc帝国的派出的n个看守员都发现了这一问题&#xff…...

JavaWab开发的总括以及HTML知识

一、Web开发的总括在这里我来给大家介绍一下Wab开发需要配合哪些前后端的对应语言:首先是Java(Java通常的工作):Wab开发android开发大数据开发另外,Wab开发想要学好就需要配合之前博客中的内容,如:多线程/IO/网络/数据结构/数据库......这里建议学懂前面的内容再往下走.JavaWab…...

Oracle数据库文件(*.dbf)迁移【图文教程】

目录 背景 解决 第1步:sqlplus登录 第2步:查看Oracle数据文件所在目录 第3步:修改表空间为离线状态 第4步: 移动数据库文件到新目录 第5步:修改表空间数据文件位置 第6步:修改表空间为online状态 第7步:临时表空间处理 第8步:验证修改是否成功 参考...

Java中如何创建和使用对象?

要想使用一个类则必须要有对象。在Java程序中可以使用new关键字创建对象&#xff0c;具体格式如下&#xff1a;类名对象名称null; 对象名称new 类名();上述格式中&#xff0c;创建对象分为声明对象和实例化对象两步&#xff0c;也可以直接通过下面的方式创建对象&#xff0c;具…...

Spring Cloud Alibaba--ActiveMQ微服务详解之消息队列(四)

上篇讲述高并发情况下的数据库处理方式&#xff1a;分布式事务管理机制。即使我们做到这一步并发情况只能稍微得到缓解&#xff0c;当然千万级别的问题不大&#xff0c;但在面对双十一淘宝这类的达上亿的并发的时候仅仅靠分布式事务管理还是远远不够&#xff0c;即使数据库可以…...

32岁,薪水被应届生倒挂,裸辞了

今年 32 岁&#xff0c;我从公司离职了&#xff0c;是裸辞。 前段时间&#xff0c;我有一件事情一直憋在心里很难受&#xff0c;想了很久也没找到合适的人倾诉&#xff0c;就借着今天写出来。 我一个十几年开发经验&#xff0c;八年 软件测试 经验的职场老人&#xff0c;我慢…...

蓝桥杯训练day1

前缀和差分1.前缀和(1)3956. 截断数组(2)795. 前缀和(3)796. 子矩阵的和(4)1230. K倍区间(5)99. 激光炸弹2.差分(1)797. 差分(2)差分矩阵(3)3729. 改变数组元素(4)100. 增减序列1.前缀和 (1)3956. 截断数组 方法1&#xff1a;暴力 先用两个数组分别保存前缀和&#xff0c;后缀…...

Unity毛发系统TressFX Exporter

Unity 数字人交流群&#xff1a;296041238 一&#xff1a;在Maya下的TressFX Exporter 插件安装步骤&#xff1a; 1. 下载Maya的TressFX Exporter插件 下载地址&#xff1a;TressFX Exporter 链接&#xff1a;https://github.com/Unity-China/cn.unity.hairfx.core/tree/m…...

《爆肝整理》保姆级系列教程python接口自动化(十九)--Json 数据处理---实战(详解)

简介 上一篇说了关于json数据处理&#xff0c;是为了断言方便&#xff0c;这篇就带各位小伙伴实战一下。首先捋一下思路&#xff0c;然后根据思路一步一步的去实现和实战&#xff0c;不要一开始就盲目的动手和无头苍蝇一样到处乱撞&#xff0c;撞得头破血流后而放弃了。不仅什么…...

Golang:reflect反射的使用例子

1.reflect包作用 reflect包定义了“反射”相关能力&#xff0c;“反射”在计算机学中是指计算机程序在运行时&#xff08;runtime&#xff09;可以访问、检测和修改它本身状态或行为的一种能力。基于反射特性可以通用化地解决一些需要频繁修改代码及硬编码问题&#xff0c;但是…...

markdown常用语法--花括号(超详细)

&#x1f48c; 所属专栏&#xff1a;【Markdown常用语法】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1…...

BN、SyncBN、IN、LN、GN学习记录

1 BatchNormBN的原理BN是计算机视觉最常用的标准化方法&#xff0c;它沿着N、H、W维度对输入特征图求均值和方差&#xff0c;随后再利用均值和方差来归一化特征图。计算过程如下图所示&#xff0c;1&#xff09;沿着通道维度计算其他维度的均值&#xff1b;2&#xff09;沿着通…...

使用 Auto-scheduling 优化算子

本篇回答来源于 TVM 官方英文文档 Lianmin Zheng&#xff0c;Chengfan Jia。更多 TVM 中文文档可访问→https://tvm.hyper.ai/ 本教程将展示 TVM 的 Auto Scheduling 功能&#xff0c;如何在不编写自定义模板的情况下&#xff0c;找到最佳 schedule。 与基于模板的 AutoTVM 依…...

智能运维应用之道,告别企业数字化转型危机

面临的问题及挑战 数据中心发展历程 2000 年中国数据中心始建&#xff0c;至今已经历以下 3 大阶段。早期&#xff1a;离散型数据中心 IT 因以项目建设为导向&#xff0c;故缺乏规划且无专门运维管理体系&#xff0c;此外&#xff0c;开发建设完的项目均是独立运维维护&#…...

第七章 SQL错误信息 - SQL错误代码 -400 到 -500

文章目录第七章 SQL错误信息 - SQL错误代码 -400 到 -500SQL错误代码和消息表WinSock错误代码-10050到-11002第七章 SQL错误信息 - SQL错误代码 -400 到 -500 SQL错误代码和消息表 错误代码描述-400发生严重错误-401严重连接错误-402用户名/密码无效-405无法从通信设备读取-4…...

DDFN: Decoupled Dynamic Filter Networks解耦的动态卷积

一、论文信息 论文名称&#xff1a;Decoupled Dynamic Filter Networks 论文&#xff1a;https://thefoxofsky.github.io/files/ddf.pdf 代码&#xff1a;https://github.com/theFoxofSky/ddfnet 主页&#xff1a;https://thefoxofsky.github.io/project_pages/ddf 作者团…...

NISP认证报名条件是什么?考试内容是什么?

科学技术是社会发展的第一生产力&#xff0c;每个国家为了能够获得更高的国际地位&#xff0c;不断提升自己的科学技术&#xff0c;现代最为先进的技术就是信息通信&#xff0c;在军事、民生、医疗、教育、制造等等领域都起着重要的作用&#xff0c;我们的生活也因为信息技术而…...

OpenClaw学术利器:Qwen3.5-9B辅助论文阅读与笔记整理

OpenClaw学术利器&#xff1a;Qwen3.5-9B辅助论文阅读与笔记整理 1. 为什么需要AI辅助学术研究 作为一名经常需要阅读大量文献的研究者&#xff0c;我长期被三个问题困扰&#xff1a;文献管理混乱、关键信息提取效率低下、笔记难以结构化。传统工具如Zotero或EndNote虽然能解…...

Youtu-VL-4B-Instruct保姆级部署教程:5分钟搞定看图说话AI,小白也能快速上手

Youtu-VL-4B-Instruct保姆级部署教程&#xff1a;5分钟搞定看图说话AI&#xff0c;小白也能快速上手 1. 为什么选择Youtu-VL-4B-Instruct&#xff1f; Youtu-VL-4B-Instruct是一个能同时理解图片和文字的AI模型&#xff0c;它基于腾讯优图实验室开发的40亿参数视觉语言模型。…...

告别老系统!手把手教你用欧空局新版哥白尼数据空间下载Sentinel-2影像(附波段组合预览技巧)

告别老系统&#xff01;手把手教你用欧空局新版哥白尼数据空间下载Sentinel-2影像&#xff08;附波段组合预览技巧&#xff09; 当欧空局宣布停用老版数据下载系统时&#xff0c;许多遥感从业者都感到一丝不安——毕竟旧系统虽然界面陈旧&#xff0c;但操作流程早已烂熟于心。作…...

OpenClaw+gemma-3-12b-it:学术论文自动摘要与分类系统

OpenClawgemma-3-12b-it&#xff1a;学术论文自动摘要与分类系统 1. 为什么需要自动化论文处理 作为一名经常需要阅读大量文献的研究者&#xff0c;我深刻体会到手动处理论文的痛点。每周需要从arXiv、PubMed等平台下载数十篇论文&#xff0c;然后逐篇阅读摘要、分类归档。这…...

【学习笔记】C++(2)

C++学习笔记 三、进阶 —— 类和对象 1、概述 2、基础 —— 公有、私有、保护、构造、析构 3、拷贝构造、临时对象不能绑定到非const引用问题 4、浅拷贝、深拷贝、移动拷贝 5、静态 6、内联和外联 7、链表 8、函数模板和类模板 9、友元 10、继承-派生(1) —— 基础 11、继承-…...

C语言实现进程调度算法:优先级与时间片轮转

1. 项目概述在嵌入式系统和操作系统开发中&#xff0c;进程调度是一个核心概念。今天我要分享的是如何在C语言中实现一个简单的程序调度机制&#xff0c;重点讲解高优先数调度算法和先来先服务算法的实现。这个项目非常适合想要深入理解操作系统底层原理的开发者&#xff0c;特…...

2026届毕业生推荐的六大降重复率平台解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 要是为了切实有效地去降低文本所具备的AIGC也就是人工智能生成内容的特征&#xff0c;那就建…...

4564564

43434...

分布式微电网能源交易算法matlab源代码, 代码按照高水平文章复现,保证正确 孤岛微电网之间...

分布式微电网能源交易算法matlab源代码&#xff0c; 代码按照高水平文章复现&#xff0c;保证正确 孤岛微电网之间的能源交易问题&#xff0c;提出了一种分布式算法。 这个问题由几个通过任意拓扑交换能量流的岛屿微网格组成。 提出了一种基于次梯度的开销最小化算法&#xff0…...

电赛赛题深度解析:从五大类别到实战备赛策略

1. 电赛赛题五大类别全解析 全国大学生电子设计竞赛&#xff08;简称电赛&#xff09;作为电子类专业最具影响力的赛事&#xff0c;其赛题设置直接反映了行业技术发展趋势。经过对近十年赛题的统计分析&#xff0c;所有题目可明确划分为五大类别&#xff0c;每类都有独特的考察…...