From 68a39b1bdfe4c1044f989bbede2c1586192d8ed9 Mon Sep 17 00:00:00 2001 From: Paul Hagedorn Date: Tue, 3 Aug 2021 07:29:11 +0200 Subject: [PATCH] fix: implement copyObject and moveObject in MinIOConnector.java --- .../database/connectors/MinIOConnector.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/codemakers/database/connectors/MinIOConnector.java b/src/main/java/de/codemakers/database/connectors/MinIOConnector.java index c7f21b97..5a0150be 100644 --- a/src/main/java/de/codemakers/database/connectors/MinIOConnector.java +++ b/src/main/java/de/codemakers/database/connectors/MinIOConnector.java @@ -100,14 +100,26 @@ public boolean removeObject(String bucket, String object) { public boolean copyObject(String srcBucket, String srcObject, String destBucket, String destObject) { checkParameter(srcBucket, srcObject); checkParameter(destBucket, destObject); - return false; + try { + return connector.copyObject(CopyObjectArgs.builder() + .source(CopySource.builder().bucket(srcBucket).object(srcObject).build()) + .bucket(destBucket) + .object(destObject) + .build()) != null; + } catch (ErrorResponseException | InsufficientDataException | InternalException | InvalidKeyException | InvalidResponseException | IOException | NoSuchAlgorithmException | ServerException | XmlParserException e) { + logger.error(String.format("Error while copying \"%s\" from \"%s\" to \"%s\" as \"%s\"", srcObject, srcBucket, destBucket, destObject), e); + return false; + } } @Override public boolean moveObject(String srcBucket, String srcObject, String destBucket, String destObject) { checkParameter(srcBucket, srcObject); checkParameter(destBucket, destObject); - return false; + if (!copyObject(srcBucket, srcObject, destBucket, destObject)) { + return false; + } + return removeObject(srcBucket, srcObject); } }