Java集成Minio问题收集

本文档记录了在Java环境中集成Minio时遇到的问题,包括如何修改Minio密码,解决启动服务、权限设置以及SpringBoot依赖版本不兼容导致的错误。此外,还详细阐述了Minio Web界面中查看文件的公共访问策略配置,特别是注意端口9000/9001的使用和访问规则的自动添加。
摘要由CSDN通过智能技术生成

MinIO

  1. 赋予权限 :chmod -R 777 /usr/local/minio
  2. 进入minio文件所在文件夹, 输入 :./minio server data 启动服务

修改密码

进入data:

cd /usr/minIO/data

查看.minio.sys

ll -a     
# -a 显示所有文件夹, 包括隐藏的
# -l 显示文件夹的详细信息

错误记录 :

在这里插入图片描述

这个问题是因为使用的springboot依赖版本为2.1.0, 要改为2.6.2

注 :这类创建bean对象这种错误大概率是jar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Java上传Minio图片,需要遵循以下步骤: 首先,您需要安装MinioJava SDK,并在必要的情况下,添加依赖项。 接下来,您需要准备证书,这些证书将与Minio服务器建立安全连接。确保证书的正确性和安全性。 一旦准备好了证书,您将需要建立一个连接,使用以下代码: ``` MinioClient minioClient = new MinioClient.Builder() .endpoint("https://play.minio.io") .credentials("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY") .build(); ``` 在建立连接后,您将需要选择要将文件上传到的bucket。使用以下代码: ``` boolean isExist = minioClient.bucketExists("mybucket"); if(!isExist) { minioClient.makeBucket("mybucket"); } ``` 一旦bucket被创建,您将需要上传文件。使用以下代码: ``` minioClient.putObject( "mybucket", "myobject", "/path/to/file.jpg", "image/jpeg" ); ``` 这将把“/path/to/file.jpg”上传到“mybucket”,并将其命名为“myobject”。 最后,不要忘记关闭连接,使用以下代码: ``` minioClient.close(); ``` 以上就是用Java上传Minio图片的主要步骤,并提供了代码样例作为参考。 ### 回答2: 在使用 Java 来上传图片到 MinIO 时,有可能会遇到证书问题。这个问题通常是因为 MinIO 使用了自签名证书或者是由自己企业签发的证书而不是经过公共颁发机构(CA)签发的证书。在这种情况下,Java 客户端会认为 MinIO 的证书不受信任,从而出现问题。 解决这个问题的方法就是让 Java 客户端信任 MinIO 的证书。为了达到这个目的,需要做如下步骤: 1. 从 MinIO 获取证书:首先需要从 MinIO 获取到证书,可以通过浏览器访问 MinIO 的域名,然后用浏览器扩展将证书下载下来。 2. 将证书导入到 Java :在 Java ,可以使用 keytool 命令将证书导入到 Java 的证书库。例如,假设证书是保存在 /path/to/cert.crt,可以使用下面的命令: keytool -import -alias minio -file /path/to/cert.crt -keystore /path/to/truststore.jks 这个命令会向名为 truststore.jks 的证书库导入证书,并命名为 minio。 3. 在 Java 使用信任证书库:最后,需要在 Java 使用刚才创建的证书库,以在与 MinIO 通信时验证 MinIO 的证书。可以通过在 Java 启动时设置 javax.net.ssl.trustStore 系统属性来实现。 例如,假设刚才创建了 /path/to/truststore.jks,可以使用下面的命令: java -Djavax.net.ssl.trustStore=/path/to/truststore.jks -jar myapp.jar 这个命令会运行名为 myapp.jar 的 Java 应用程序,并指示 Java 使用名为 truststore.jks 的证书并信任证书的所有证书。 通过以上步骤,就可以让 Java 客户端信任 MinIO 的证书,从而解决证书问题并成功上传图片到 MinIO。 ### 回答3: Java上传Minio图片证书问题,涉及到如何在Java代码使用HTTPS协议,同时将Minio的证书导入到Java的KeyStore。 首先,为了在Java使用HTTPS协议,需要为Java Runtime配置HTTPS代理。其关键的配置项是javax.net.ssl.trustStoreSystemProperty,它指定了Java Runtime使用的TrustStore路径。TrustStore是Java用于存储受信任的证书的地方。 其次,为了上传Minio图片,需要将Minio的证书导入到Java的TrustStore。证书可以使用Java的keytool工具导入。步骤如下: 1. 打开命令行终端,进入到Java的bin目录。 2. 执行以下命令: keytool -import -alias minio -file /path/to/minio.crt -keystore /path/to/truststore.jks 其minio.crt是Minio服务器的证书文件,truststore.jks是要导入证书的Java TrustStore文件。 3. 根据提示输入密码,即可将Minio的证书导入到Java的TrustStore。 完成以上步骤后,Java就可以使用HTTPS协议上传图片到Minio了。代码示例: ```java import java.io.InputStream; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManagerFactory; import java.security.KeyStore; import java.security.cert.X509Certificate; import java.security.cert.CertificateFactory; import java.net.URL; public class MinioUploader { public static void main(String[] args) { try { // Load truststore KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType()); InputStream trustStoreIS = new FileInputStream("/path/to/truststore.jks"); trustStore.load(trustStoreIS, "truststore_password".toCharArray()); // Create SSL context using truststore TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); trustManagerFactory.init(trustStore); SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, trustManagerFactory.getTrustManagers(), null); // Upload image to Minio server URL url = new URL("https://minio.example.com/images/image.jpg"); HttpsURLConnection connection = (HttpsURLConnection)url.openConnection(); connection.setSSLSocketFactory(sslContext.getSocketFactory()); connection.setRequestMethod("PUT"); connection.setDoOutput(true); InputStream imageIS = new FileInputStream("/path/to/image.jpg"); byte[] buffer = new byte[imageIS.available()]; imageIS.read(buffer); connection.getOutputStream().write(buffer); imageIS.close(); // Print server response int responseCode = connection.getResponseCode(); InputStream responseIS = connection.getInputStream(); byte[] responseBuffer = new byte[responseIS.available()]; responseIS.read(responseBuffer); String responseString = new String(responseBuffer); System.out.println("Response code: " + responseCode); System.out.println("Response body: " + responseString); } catch (Exception e) { e.printStackTrace(); } } } ``` 以上代码,在函数开头加载了TrustStore,并利用TrustStore创建了SSLContext。在上传图片时,使用SSLContext来与Minio服务器建立加密连接。同时,也可以看到在代码使用了证书的Alias来指示使用的是Minio的证书。对于Java的开发者来说,在开发代码时,上传Minio图片并不困难,只需要遵循以上步骤即可保证上传的数据得到加密保护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值