我使用的是 Minio 的 JAVA SDK。我设法在同一个 Minio Server 中复制对象。有没有办法将对象从一个 Minio 服务器复制到另一个?
我尝试使用以下代码:
InputStream inputStream = minioClientServer1.getObject(getBucket(), fileName);
minioClientServer2.putObject(getBucket(), fileName, inputStream, (long) inputStream.available(), null, null, contentType);
也就是说,我从一台服务器获取对象,然后上传到下一台。我面临的问题是 contentType 未知。
有没有办法在不硬编码内容类型的情况下做到这一点? 或者将对象下载到文件然后上传是更好的方法?
答案 0 :(得分:0)
我不确定这是否适用于您,因为您没有提供足够的信息让我确定我们谈论的是同一个 SDK。但是从您所展示的内容来看,您应该能够以与调用 statObject
相同的方式调用 getObject
并获取 ObjectStat
实例而不是特定于特定的 InputStream
实例S3 对象。拥有 ObjectStat
实例后,您应该能够对其调用 contentType
方法以获取 S3 对象的内容类型。
这应该可以满足您的要求:
ObjectStat objectStat = minioClientServer1.statObject(getBucket(), fileName);
InputStream inputStream = minioClientServer1.getObject(getBucket(), fileName);
minioClientServer2.putObject(getBucket(), fileName, inputStream, (long) inputStream.available(), null, null, objectStat.contentType());