当前位置: 首页 > 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控制台查看文件,并预览文件。

http://www.lryc.cn/news/14004.html

相关文章:

  • 系统分析师真题2018试卷相关概念一
  • 身为大学生,你不会还不知道有这些学生福利吧!!!!
  • 试题 算法训练 藏匿的刺客
  • JavaWab开发的总括以及HTML知识
  • Oracle数据库文件(*.dbf)迁移【图文教程】
  • Java中如何创建和使用对象?
  • Spring Cloud Alibaba--ActiveMQ微服务详解之消息队列(四)
  • 32岁,薪水被应届生倒挂,裸辞了
  • 蓝桥杯训练day1
  • Unity毛发系统TressFX Exporter
  • 《爆肝整理》保姆级系列教程python接口自动化(十九)--Json 数据处理---实战(详解)
  • Golang:reflect反射的使用例子
  • markdown常用语法--花括号(超详细)
  • BN、SyncBN、IN、LN、GN学习记录
  • 使用 Auto-scheduling 优化算子
  • 智能运维应用之道,告别企业数字化转型危机
  • 第七章 SQL错误信息 - SQL错误代码 -400 到 -500
  • DDFN: Decoupled Dynamic Filter Networks解耦的动态卷积
  • NISP认证报名条件是什么?考试内容是什么?
  • 利用redis实现缓存、发布订阅、分布式锁功能
  • SVN无法连接到服务器的各种问题原因及解决办法
  • React 基本使用
  • 单例模式设计(面试题)
  • 机器学习:基于支持向量机(SVM)进行人脸识别预测
  • 【服务器数据恢复】多块磁盘离线导致RAIDZ崩溃的数据恢复案例
  • iconfont 图标如何在uniapp中的tabBar使用
  • 第六章.卷积神经网络(CNN)—卷积层(Convolution)池化层(Pooling)
  • c/c++开发,无可避免的模板编程实践(篇六)
  • 【Java】Spring核心与设计思想
  • 组合实现多类别分割(含实战代码)