如何从一台 minio 服务器复制到另一台?

时间:2021-01-29 20:57:45

标签: java minio

我使用的是 Minio 的 JAVA SDK。我设法在同一个 Minio Server 中复制对象。有没有办法将对象从一个 Minio 服务器复制到另一个?

我尝试使用以下代码:

InputStream inputStream = minioClientServer1.getObject(getBucket(), fileName);
minioClientServer2.putObject(getBucket(), fileName, inputStream, (long) inputStream.available(), null, null, contentType);

也就是说,我从一台服务器获取对象,然后上传到下一台。我面临的问题是 contentType 未知。

有没有办法在不硬编码内容类型的情况下做到这一点? 或者将对象下载到文件然后上传是更好的方法?

1 个答案:

答案 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());