精华内容
下载资源
问答
  • minio文件上传

    2021-04-15 11:56:05
    minio文件上传工具类 package net.dgcreate.common.utils; import io.minio.MinioClient; import io.minio.PutObjectOptions; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.commons....

    minio文件上传工具类

    package net.dgcreate.common.utils;
    
    import io.minio.MinioClient;
    import io.minio.PutObjectOptions;
    import lombok.Data;
    import lombok.extern.slf4j.Slf4j;
    import org.apache.commons.lang3.StringUtils;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    import org.springframework.web.multipart.MultipartFile;
    
    import javax.annotation.Resource;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    
    /**
     * 信息描述: minio文件上传工具类
     * @params
     * @returnType
     * @date 2021/3/22
     */
    @Slf4j
    @Component
    public class FlieUtlis {
    
    
        //注入minio链接
        @Value("${minio.endpoint}")
        private  String endpoint;
        //注入minio账号
        @Value("${minio.accesskey}")
        private  String accesskey;
        //注入minio密码
        @Value("${minio.secretKey}")
        private  String secretKey;
    
        //注入minio桶名称
        @Value("${minio.bucketname}")
        private  String culturalfiles;
        /**
         * 信息描述: 多文件上传
         * UserName jinLong
         * @params []
         * @returnType java.util.Map<java.lang.String, java.lang.Object>
         * @date 2021/3/22
         */
        public  List FileUploader(MultipartFile[] files) {
            MinioClient minioClient = null;
            try {
                InputStream inputStream = null;
                // 使用MinIO服务的URL,端口,Access key和Secret key创建一个MinioClient对象
                minioClient = new MinioClient(endpoint, accesskey,secretKey);
                // 检查存储桶是否已经存在
                boolean isExist = minioClient.bucketExists(culturalfiles);
                if (isExist == false) {
                    // 创建一个名为asiatrip的存储桶,用于存储照片的zip文件。
                    minioClient.makeBucket(culturalfiles);
                }
                //判断文件是否为空
                if (files == null || files.length < 0) {
                    throw new Exception("上传文件不能为空");
                }
                String flieName = null;
                List<String> uRlList = new ArrayList<>();
                //遍历文件
                for (int i = 0; i < files.length; i++) {
                    String originalFilename = files[i].getOriginalFilename();
                    //文件名称是否存在
                    if (!StringUtils.isBlank(originalFilename)) {
                        long longTime = System.currentTimeMillis();
                        String suffix = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
                        inputStream = files[i].getInputStream();
                        //文件最终名称
                        flieName = longTime + "." + suffix;
                        uRlList.add(minioClient.getObjectUrl(culturalfiles, flieName));
                        //文件上传
                        minioClient.putObject(culturalfiles, flieName, inputStream, new PutObjectOptions(inputStream.available(), -1));
                    }
                }
                inputStream.close();
                //返回路径集合
                return uRlList;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    
    
        /**
         * 信息描述: 删除桶中多个文件
         * UserName jinLong
         * @params [fileName]
         * @returnType net.dgcreate.common.utils.ResultJsonBean
         * @date 2021/3/26
         */
        public  Boolean delete(String fileNames) {
            MinioClient minioClient = null;
            try {
                //初始化minio对象
                minioClient = new MinioClient(endpoint, accesskey,secretKey);
                String strip = StringUtils.strip(fileNames, "[]");
                String[] splitNum = strip.split(",");
                for (int i=0;i<splitNum.length;i++){
                    String newFlieName= splitNum[i];
                    String[] fileUrl=newFlieName.split("/");
                    String url=fileUrl[fileUrl.length-1];
                    //多文件删除minio里面的文件
                    minioClient.removeObject(culturalfiles, url);
                }
            } catch (Exception e) {
                e.printStackTrace();
                return false;
            }
            return true;
        }
    
    
    }
    
    

    Controller

        private ResultJsonBean insertCultural(@RequestParam("files") MultipartFile[] figureUrl){
            return figureService.insertCultural(figureUrl,figureVo);
        }
    

    Service

    	//上传文件
        @Resource
        private FlieUtlis flieUtlis;//minio文件上传工具类
        
    
    	
     @Override
        public ResultJsonBean insertCultural(MultipartFile[] figureUrl) {
    	        try {
                List list =flieUtlis.FileUploader(figureUrl);//上传头像文件
            } catch (Exception e) {
                e.printStackTrace();
                return new ResultJsonBean("添加文件失败");
            }
    
    }
    

    文件删除如上:
    flieUtlis.delete(figureUrl);

    记得添加minio配置

    #minio配置
    minio:
      endpoint: minio地址
      accesskey: minioadmin
      secretKey: minioadmin
      bucketname: culturalfiles
    
    展开全文
  • MinIO文件上传

    千次阅读 2020-09-21 00:10:16
    MinIO文件上传 文章目录前言MinIO服务器安装(推荐Docker)依赖文件上传Demo桶操作获取桶的列表获取某个桶中的文件文件操作文件上传(通过本地文件上传)文件上传(通过流进行文件上传)文件下载(获取流)文件删除 前言 ...

    MinIO文件上传

    前言

    文件上传下载是我们平时开发中经常会碰到的场景,这里我们就可以随着博主来简单的搭建一个文件服务,让你可以在10分钟内实现文件的上传下载。


    MinIO服务器安装(推荐Docker)

    1. 安装

    Docker安装时最快最无脑的,一行命令就可以实现。

    • 这里设置了你的账户密码
    • 设置了你的端口号
    • 设置了你的镜像磁盘映射
    docker run -p 9000:9000 --name minio1 \
      -e "MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE" \
      -e "MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
      -v /mnt/data:/data \
      -v /mnt/config:/root/.minio \
      minio/minio server /data
    

    2. 登录你的文件服务

    http://localhost:9000

    账户密码就是你刚刚设置的MINIO_ACCESS_KEY和MINIO_SECRET_KEY。

    依赖

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

    文件上传Demo

    
    import io.minio.MinioClient;
    import min_io.Config;
    import io.minio.PutObjectArgs;
    import io.minio.errors.MinioException;
    
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.security.InvalidKeyException;
    import java.security.NoSuchAlgorithmException;
    
    public class FileUploader {
    
        private static final String endpoint = "http://localhost:9000";
        private static final String ACCESS_KEY = "AKIAIOSFODNN7EXAMPLE";
        private static final String SECRET_KEY = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY";
        private static final String BUCKET = "asiatrip2";
    
        public static void main(String[] args) throws NoSuchAlgorithmException, IOException, InvalidKeyException {
            try {
                // 使用MinIO服务的URL,端口,Access key和Secret key创建一个MinioClient对象
                MinioClient minioClient = new MinioClient(endpoint,
                        ACCESS_KEY,
                        SECRET_KEY);
    
                // 检查存储桶是否已经存在
                boolean isExist = minioClient.bucketExists(BUCKET);
                if (isExist) {
                    System.out.println("Bucket already exists.");
                } else {
                    // 创建一个名为asiatrip的存储桶,用于存储照片的zip文件。
                    minioClient.makeBucket(BUCKET);
                }
    
                // 使用putObject上传一个文件到存储桶中。
                String fileName = "个人课表.jpg";
                minioClient.putObject(
                        PutObjectArgs.builder().bucket(BUCKET).object(fileName)
                                .stream(new FileInputStream("B:\\"+fileName), -1, 10485760)
                                .contentType("image/png")
                                .build());
                System.out.println(fileName+" is upload success!");
            } catch (MinioException e) {
                System.out.println("Error occurred: " + e);
            }
        }
    }
    

    桶操作

    获取桶的列表

    import io.minio.MinioClient;
    import io.minio.errors.MinioException;
    import io.minio.messages.Bucket;
    import min_io.Config;
    
    import java.io.IOException;
    import java.security.InvalidKeyException;
    import java.security.NoSuchAlgorithmException;
    import java.util.List;
    
    public class GetBucketList {
    
    
        public static void main(String[] args) throws NoSuchAlgorithmException, IOException, InvalidKeyException {
            try {
                // 使用MinIO服务的URL,端口,Access key和Secret key创建一个MinioClient对象
                MinioClient minioClient = new MinioClient(Config.ENDPOIN,
                        Config.ACCESS_KEY,
                        Config.SECRET_KEY);
    
                // 检查存储桶是否已经存在
                boolean isExist = minioClient.bucketExists(Config.BUCKETS[0]);
                if (isExist) {
                    System.out.println("Bucket already exists.");
                } else {
                    // 创建一个名为asiatrip的存储桶,用于存储照片的zip文件。
                    minioClient.makeBucket(Config.BUCKETS[0]);
                }
    
                // 列出所有存储桶
                List<Bucket> bucketList = minioClient.listBuckets();
                for (Bucket bucket : bucketList) {
                    System.out.println(bucket.creationDate() + ", " + bucket.name());
                }
    
            } catch (MinioException e) {
                System.out.println("Error occurred: " + e);
            }
        }
    }
    

    获取某个桶中的文件

    import io.minio.MinioClient;
    import io.minio.Result;
    import io.minio.errors.MinioException;
    import io.minio.messages.Item;
    import min_io.Config;
    
    import java.io.IOException;
    import java.security.InvalidKeyException;
    import java.security.NoSuchAlgorithmException;
    
    public class GetBucketFiles {
    
    
        public static void main(String[] args) throws NoSuchAlgorithmException, IOException, InvalidKeyException {
            try {
                // 使用MinIO服务的URL,端口,Access key和Secret key创建一个MinioClient对象
                MinioClient minioClient = new MinioClient(Config.ENDPOIN,
                        Config.ACCESS_KEY,
                        Config.SECRET_KEY);
    
                // 检查存储桶是否已经存在
                boolean isExist = minioClient.bucketExists(Config.BUCKETS[0]);
                if (isExist) {
                    System.out.println("Bucket already exists.");
                } else {
                    // 创建一个名为asiatrip的存储桶,用于存储照片的zip文件。
                    minioClient.makeBucket(Config.BUCKETS[0]);
                }
    
                try {
                    // 检查'mybucket'是否存在。
                    boolean found = minioClient.bucketExists(Config.BUCKETS[0]);
                    if (found) {
                        // 列出'my-bucketname'里的对象
                        Iterable<Result<Item>> myObjects = minioClient.listObjects(Config.BUCKETS[0]);
                        for (Result<Item> result : myObjects) {
                            Item item = result.get();
                            System.out.println(item.lastModified() + ", " + item.size() + ", " + item.objectName());
                        }
                    } else {
                        System.out.println("mybucket does not exist");
                    }
                } catch (MinioException e) {
                    System.out.println("Error occurred: " + e);
                }
    
            } catch (MinioException e) {
                System.out.println("Error occurred: " + e);
            }
        }
    }
    

    文件操作

    文件上传(通过本地文件上传)

    import io.minio.MinioClient;
    import io.minio.PutObjectArgs;
    import io.minio.errors.MinioException;
    import min_io.Config;
    
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.security.InvalidKeyException;
    import java.security.NoSuchAlgorithmException;
    
    public class FileUploadLocal {
    
    
        public static void main(String[] args) throws NoSuchAlgorithmException, IOException, InvalidKeyException {
            try {
                // 使用MinIO服务的URL,端口,Access key和Secret key创建一个MinioClient对象
                MinioClient minioClient = new MinioClient(Config.ENDPOIN,
                        Config.ACCESS_KEY,
                        Config.SECRET_KEY);
    
                // 检查存储桶是否已经存在
                boolean isExist = minioClient.bucketExists(Config.BUCKETS[0]);
                if (isExist) {
                    System.out.println("Bucket already exists.");
                } else {
                    // 创建一个名为asiatrip的存储桶,用于存储照片的zip文件。
                    minioClient.makeBucket(Config.BUCKETS[0]);
                }
    
                // 使用putObject上传一个文件到存储桶中。
                String fileName = "pic1.png";
                minioClient.putObject(
                        PutObjectArgs.builder().bucket(Config.BUCKETS[0]).object(fileName)
                                .stream(new FileInputStream("B:\\"+fileName), -1, 10485760)
                                .contentType("image/png")
                                .build());
                System.out.println(fileName+" is upload success!");
            } catch (MinioException e) {
                System.out.println("Error occurred: " + e);
            }
        }
    }
    

    文件上传(通过流进行文件上传)

    import io.minio.MinioClient;
    import io.minio.PutObjectArgs;
    import io.minio.errors.MinioException;
    import min_io.Config;
    
    import java.io.ByteArrayInputStream;
    import java.io.IOException;
    import java.security.InvalidKeyException;
    import java.security.NoSuchAlgorithmException;
    
    public class FileUploadStream {
    
    
        public static void main(String[] args) throws NoSuchAlgorithmException, IOException, InvalidKeyException {
            try {
                // 使用MinIO服务的URL,端口,Access key和Secret key创建一个MinioClient对象
                MinioClient minioClient = new MinioClient(Config.ENDPOIN,
                        Config.ACCESS_KEY,
                        Config.SECRET_KEY);
    
                // 检查存储桶是否已经存在
                boolean isExist = minioClient.bucketExists(Config.BUCKETS[0]);
                if (isExist) {
                    System.out.println("Bucket already exists.");
                } else {
                    // 创建一个名为asiatrip的存储桶,用于存储照片的zip文件。
                    minioClient.makeBucket(Config.BUCKETS[0]);
                }
    
                StringBuilder builder = new StringBuilder();
                for (int i = 0; i < 1000; i++) {
                    builder.append("Sphinx of black quartz, judge my vow: Used by Adobe InDesign to display font samples. ");
                    builder.append("(29 letters)\n");
                    builder.append("Jackdaws love my big sphinx of quartz: Similarly, used by Windows XP for some fonts. ");
                    builder.append("(31 letters)\n");
                    builder.append("Pack my box with five dozen liquor jugs: According to Wikipedia, this one is used on ");
                    builder.append("NASAs Space Shuttle. (32 letters)\n");
                    builder.append("The quick onyx goblin jumps over the lazy dwarf: Flavor text from an Unhinged Magic Card. ");
                    builder.append("(39 letters)\n");
                    builder.append("How razorback-jumping frogs can level six piqued gymnasts!: Not going to win any brevity ");
                    builder.append("awards at 49 letters long, but old-time Mac users may recognize it.\n");
                    builder.append("Cozy lummox gives smart squid who asks for job pen: A 41-letter tester sentence for Mac ");
                    builder.append("computers after System 7.\n");
                    builder.append("A few others we like: Amazingly few discotheques provide jukeboxes; Now fax quiz Jack! my ");
                    builder.append("brave ghost pled; Watch Jeopardy!, Alex Trebeks fun TV quiz game.\n");
                    builder.append("- --\n");
                }
                ByteArrayInputStream bais = new
                        ByteArrayInputStream(builder.toString().getBytes("UTF-8"));
                // 创建对象
    //            "mybucket", "myobject", bais, bais.available(), "application/octet-stream")
                minioClient.putObject(
                        PutObjectArgs.builder()
                                .bucket(Config.BUCKETS[0])
                                .object(Config.TEXT_FILE)
                                .contentType("text/text")
                                .stream(bais, bais.available(), -1)
                                .build()
                );
    
                bais.close();
                System.out.println("myobject is uploaded successfully");
    
            } catch (MinioException e) {
                System.out.println("Error occurred: " + e);
            }
        }
    }
    

    文件下载(获取流)

    import io.minio.MinioClient;
    import io.minio.errors.MinioException;
    import min_io.Config;
    
    import java.io.IOException;
    import java.security.InvalidKeyException;
    import java.security.NoSuchAlgorithmException;
    
    public class GetDownloadFile {
        /**
         * MinioClient.getObject() example.
         */
        public static void main(String[] args)
                throws IOException, NoSuchAlgorithmException, InvalidKeyException {
            try {
                /* play.min.io for test and development. */
                MinioClient minioClient =
                        MinioClient.builder()
                                .endpoint(Config.ENDPOIN)
                                .credentials(Config.ACCESS_KEY, Config.SECRET_KEY)
                                .build();
    
                // 调用statObject()来判断对象是否存在。
                // 如果不存在, statObject()抛出异常,
                // 否则则代表对象存在。
                minioClient.statObject(Config.BUCKETS[0], Config.FILES[1]);
    
                // 获取myobject的流并保存到photo.jpg文件中。
                minioClient.getObject(Config.BUCKETS[0], Config.FILES[1], "B:\\photo.jpg");
    
            } catch (MinioException e) {
                System.out.println("Error occurred: " + e);
            }
        }
    }
    

    文件删除

    import io.minio.MinioClient;
    import io.minio.RemoveObjectsArgs;
    import io.minio.Result;
    import io.minio.errors.MinioException;
    import io.minio.messages.DeleteError;
    import io.minio.messages.DeleteObject;
    import min_io.Config;
    
    import java.io.IOException;
    import java.security.InvalidKeyException;
    import java.security.NoSuchAlgorithmException;
    import java.util.LinkedList;
    import java.util.List;
    
    public class DeleteFile {
      /** MinioClient.removeObject() example removing multiple objects. */
      public static void main(String[] args)
          throws IOException, NoSuchAlgorithmException, InvalidKeyException {
        try {
          /* play.min.io for test and development. */
          MinioClient minioClient =
              MinioClient.builder()
                  .endpoint(Config.ENDPOIN)
                  .credentials(Config.ACCESS_KEY, Config.SECRET_KEY)
                  .build();
    
    
          List<DeleteObject> objects = new LinkedList<>();
          objects.add(new DeleteObject(Config.FILES[0]));
          objects.add(new DeleteObject(Config.FILES[1]));
          Iterable<Result<DeleteError>> results =
              minioClient.removeObjects(
                  RemoveObjectsArgs.builder().bucket(Config.BUCKETS[0]).objects(objects).build());
          for (Result<DeleteError> result : results) {
            DeleteError error = result.get();
            System.out.println(
                "Error in deleting object " + error.objectName() + "; " + error.message());
          }
        } catch (MinioException e) {
          System.out.println("Error occurred: " + e);
        }
      }
    }
    
    展开全文
  • minio文件储存服务

    2020-12-15 11:46:55
    minio 兼容Amason的S3分布式对象存储项目,采用Golang实现,客户端支持Java,Python,Javacript, Golang语言。Minio可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用Golang实现,服务端可以工作在...
  • 主要介绍了基于Java写minio客户端实现上传下载文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 文章目录使用第三方组件进行Minio文件上传-Android使用第三方`aws-android-sdk`上传文件上传 使用第三方组件进行Minio文件上传-Android https://blog.csdn.net/u013243573/article/details/79039351 ...

    使用第三方组件进行Minio文件上传-Android

    https://blog.csdn.net/u013243573/article/details/79039351
    https://github.com/aws-amplify/aws-sdk-android/tree/main/aws-android-sdk-s3
    https://github.com/aws-amplify/aws-sdk-android
    https://blog.csdn.net/xu912996973/article/details/115073380


    minio本身提供的sdk支持的是java,在Java中能正常使用,但是在Android中就会异常,貌似有大神可以自己改依赖,甚至改源码,我这边使用的是aws-android-sdk,很幸运的是第一次尝试就成功了,而且文件上传的时候可以实时展示进度.

    使用第三方aws-android-sdk上传

    • 依赖
    // https://mvnrepository.com/artifact/com.amazonaws/aws-android-sdk-s3
    implementation group: 'com.amazonaws', name: 'aws-android-sdk-s3', version: '2.22.5'
    // https://mvnrepository.com/artifact/com.amazonaws/aws-android-sdk-mobile-client
    implementation group: 'com.amazonaws', name: 'aws-android-sdk-mobile-client', version: '2.22.5'
    
    • service配置
     <service android:name="com.amazonaws.mobileconnectors.s3.transferutility.TransferService" android:enabled="true" />
    

    文件上传

         AmazonS3 s3 = new AmazonS3Client(new AWSCredentials() {
                @Override
                public String getAWSAccessKeyId() {
                    return NetBaseConfig.MINIO_KEY;//minio的key
                }
                @Override
                public String getAWSSecretKey() {
                    return NetBaseConfig.MINIO_SECRET;//minio的密钥
                }
            }, Region.getRegion(Regions.CN_NORTH_1),new ClientConfiguration());
            //服务器地址
            s3.setEndpoint(NetBaseConfig.MINIO_ENDPOINT);//http://ip:端口号
     
            File file = new File(filePath);//filePath是文件在Android中的地址
            //(桶名,fileName文件在桶中存放地址,文件file)
            s3.putObject(new PutObjectRequest(MINIO_BUCKET_NAME,fileName,file).withGeneralProgressListener(new ProgressListener(){
                int readedbyte = 0;
                @Override
                public void progressChanged(ProgressEvent progressEvent) {
                    readedbyte += progressEvent.getBytesTransferred();
                    Log.d(TAG, "progressChanged: "+fileName+"文件上传进度:"+((float)(readedbyte / (float)file.length())*100 )+"%");
    //                System.out.println("=========progress=================" + + "============URL=============");
                }
            }));
            //获取文件上传后访问地址url:(http://xxx/地址?密钥)
    //        GeneratePresignedUrlRequest urlRequest = new GeneratePresignedUrlRequest(MINIO_BUCKET_NAME, fileName);
    //        URL url = s3.generatePresignedUrl(urlRequest);
    //        System.out.println("=========URL=================" + url.toString() + "============URL=============");
    
    展开全文
  • MinIo文件上传) 预备知识点 雷迪斯 昂首阔步 弹簧靴 MinIO SpringTask 本仓库 关注 收藏 功能演示 MinIO上传文件 SpringBoot上传文件 环境建造 创建Docker容器 docker pull redis:4 docker run --name redis -p ...
  • Java MinIO文件上传,下载和删除

    千次阅读 2020-07-31 16:36:24
    1.先导入maven依赖( minio版本不能太低不然运行时会出现:org.xmlpull.v1.XmlPullParserException 错误) <dependency> <groupId>io.minio</groupId> <artifactId>minio</...

    1.先导入maven依赖( MinIO版本不能太低不然运行时会出现:org.xmlpull.v1.XmlPullParserException 错误)

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

     

    package com.example.demo.controller;
    
    import io.minio.GetObjectArgs;
    import io.minio.MinioClient;
    import io.minio.PutObjectArgs;
    import io.minio.RemoveObjectArgs;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.nio.charset.StandardCharsets;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.UUID;
    
    /**
     * @author yiran
     * @version 1.0
     * @date 2020/7/31 15:43
     */
    public class MinioTest {
    
        private final static Logger logger = LoggerFactory.getLogger(MinioTest.class);
        
        //填写你文件上传的地址以及相应信息
        private static String url = "";
        private static String access = "";
        private static String secret = "";
        private static String bucket = "";
    
        /**
         * 上传
         * @return
         */
        public static String uploadFileMinio(){
            try {
                //创建MinioClient对象
                MinioClient minioClient =
                        MinioClient.builder()
                                .endpoint(url)
                                .credentials(access, secret)
                                .build();
    
                File file = new File("C:/Users/yiran/Desktop/minio.txt");
                InputStream in = new FileInputStream(file);
                String fileName = file.getName();
                //文件上传到minio上的Name把文件后缀带上,不然下载出现格式问题
                fileName = UUID.randomUUID()+"."+fileName.substring(fileName.lastIndexOf(".") + 1);
    
                //创建头部信息
                Map<String, String> headers = new HashMap<>(1<<2);
                //添加自定义内容类型
                headers.put("Content-Type", "application/octet-stream");
                //添加存储类
                headers.put("X-Amz-Storage-Class", "REDUCED_REDUNDANCY");
                //添加自定义/用户元数据
                Map<String, String> userMetadata = new HashMap<>(1<<2);
                userMetadata.put("My-Project", "Project One");
                //上传
                minioClient.putObject(
                        PutObjectArgs.builder().bucket(bucket).object(fileName).stream(
                                in, in.available(), -1)
                                .headers(headers)
                                .userMetadata(userMetadata)
                                .build());
                in.close();
                return fileName;
            }catch (Exception e){
                e.printStackTrace();
                return e.getMessage();
            }
        }
    
        /**
         * 删除
         * @param fileName
         * @return
         * @throws Exception
         */
        public static String removeMinio(String fileName){
            try {
                //创建MinioClient对象
                MinioClient minioClient = MinioClient.builder()
                        .endpoint(url)
                        .credentials(access, secret)
                        .build();
                minioClient.removeObject( RemoveObjectArgs.builder().bucket(bucket).object(fileName).build());
                return "success";
            }catch (Exception e){
                e.printStackTrace();
                return e.getMessage();
            }
    
        }
           
        /**
         * 下载
         * @return
         */
        public static void downloadMinio(String fileName){
            try {
                //创建MinioClient对象
                MinioClient minioClient =
                        MinioClient.builder()
                                .endpoint(url)
                                .credentials(access, secret)
                                .build();
                InputStream stream = minioClient.getObject(GetObjectArgs.builder().bucket(bucket).object(fileName).build());
                byte[] buf = new byte[1024];
                int bytesRead;
                while ((bytesRead = stream.read(buf, 0, buf.length)) >= 0) {
                    System.out.println(new String(buf, 0, bytesRead, StandardCharsets.UTF_8));
                }
                stream.close();
            } catch (Exception e) {
                e.printStackTrace();
                logger.info(e.getMessage());
            }
        }
    
    
        public static void main(String[] args) {
            String fileName = MinioTest.uploadFileMinio();
            MinioTest.downloadMinio(fileName);
            String msg = MinioTest.removeMinio(fileName);
            System.out.println(msg);
        }
    
    
    }
    

     

    2.效果图

     上传的文件内容

    测试结果

     

     

    MinIO官网:https://docs.min.io/docs/java-client-quickstart-guide.html

    展开全文
  • 1. MinIO形式文件上传: 首先需要有MinIO服务器,这里略过。 @PostMapping("file/upload") public String MinIOUpload(MultipartFile file) { if (file.isEmpty() || file.getSize() == 0) { return "文件为...
  • AESFileUtil MD5FileUtils FileUploadUtil FileUtil MinioUtils
  • yii2tech /文件存储Minio存储 将Minio Storage添加到yii2tech /文件存储 安装 安装此扩展的首选方法是通过 。 无论运行 php composer.phar require --prefer-dist udokmeci/yii2-tech-filestorage-minio "*" 或添加...
  • 上传文件到minio文件大小限制

    万次阅读 2020-02-03 23:17:10
    首先说mino好像并没有限制单个文件或者一次上传文件大小的限制。 出现这个问题的原因是springboot限制了上传文件的大小 可以查看源码MultipartProperties类中 从源码中可以得知,maxFileSize,即最大文件大小,...
  • java实现MinIO文件上传,并将视频文件截图,将视频封面及视频通过MinIo上传到服务器中配置完毕,接下来开始代码编写。说明 总过程分为两步。 1.配置MinIO的环境。 2.代码编写。 下面开始配置MinIO的环境。 (1)导入...
  • Minio 服务器上传文件 1、安装Minio 服务器 2、引入 jar 包 <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>7.0.2</...
  • 今天项目中甲方指定了一个以前没用过的文件服务器,捅咕半天,记录一下使用方法。 1.导入依赖 <!-- springboot整合minio --> <dependency> <groupId>io.minio</groupId> <artifactId...
  • minio上传逻辑是,文件大于5M,执行分片上传. 但是没有对外抛出相关的能力,在8.0版本后允许通过特殊途径执行 核心逻辑 #mermaid-svg-NZtR5ZeVZlsvzjla .label{font-family:'trebuchet ms', verdana, arial;font-...
  • 它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。 MinIO官方文档:...
  • Java分片上传Minio分片上传Demo可用实例,直接导入使用
  • 首先,下载文件安装,链接:https://pan.baidu.com/s/17dpzPBaobaj8kkUgB272LA 提取码:1004 复制这段内容后打开百度网盘手机App,操作更方便哦 Linux下安装命令: chmod +x minio #启动 ./minio server /usr/...
  • (2)本文章是在spring boot中集成minio,实现文件上传,当然单纯的java环境也可以实现文件上传功能。 (3)我的环境是: java 1.8.0_131 maven 3.3.9 spring boot 2.2.0 minio文档 英文:https://docs.min.io/ 中文:...
  • minio的上传,多文件上传以及授权,整理在了微信gongzhonghao,点技术实践。
  • Minio 上传下载文件除了需要 Bucket 还需要指定文件名,其中文件名可以是一个包含 Path 的文件名,例如 fileName 可以是 1/2/3/4/5.jpg 也可以是 5.jpg。其 API 有: // 上传 minioClient.putObject(bucket, ...
  • Spring Boot +Minio 文件上传使用Windows版 minio 下载地址:下载地址 下载之后找到文件找到这个文件 然后打开cmd命令窗口,在这里面输入cmd即可 输入命令运行即可 minio.exe server D:\minio 访问地址:...
  • 由于fastdfs的文件不能直接迁移至minio中使用,文件链接地址存储在数据库中,格式也大不相同,只能进行逐步手动迁移的思路进行。 (1)对于有时效性的文件,比如要求存在3个月,半年的这种文件,可以不进行迁移,...
  • 1、导入minio依赖: <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <...# MinIo文件服务器 minio: # bucket名称 bucket: "t
  • springboot+minio实现文件上传下载

    千次阅读 2020-09-17 14:18:52
    springboot+minio实现文件上传下载: windows安装minio服务器:https://min.io/download#/windows官网下载.exe文件。 新建一个文件data,powershell进入到.exe文件目录,运行命令.\minio.exe server F:\minio\data...
  • 一、将minio部署在docker容器中 <1> 安装好docker容器后,运行下面的命令。如果之前没有安装过minio镜像,则会自动安装并且启动一个容器。这里-p指定了两个端口,前者是api方式访问的端口,后者是客户端...
  • minio实现文件上传下载和删除功能

    万次阅读 热门讨论 2020-06-10 21:15:01
    使用minio实现,后面会记录使用fastdfs和阿里云的oss实现文件上传以及他们的比较(oss根据流量收费)。minio的中文文档:https://docs.min.io/cn/ minio安装 首先查询docker镜像: docker search minio 选着...
  • POM <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>8.2.1</version> </dependency> pe
  • 基于MinIO Java SDK完成文件上传

    千次阅读 2020-10-07 13:57:57
    最近在写项目的时候,使用了富文本编辑器wangEditor,其中有一个功能是图片上传,因为之前已经有一个搭建好的MinIO服务且提供了Java SDK,在实现这个功能的时候也踩了一下坑,将该功能记录如下。 整合wangEditor 在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,247
精华内容 898
关键字:

minio文件上传