diff --git a/h2o-persist-s3/src/main/java/water/persist/PersistS3.java b/h2o-persist-s3/src/main/java/water/persist/PersistS3.java index cfef0540d830..818db86a0282 100644 --- a/h2o-persist-s3/src/main/java/water/persist/PersistS3.java +++ b/h2o-persist-s3/src/main/java/water/persist/PersistS3.java @@ -237,6 +237,24 @@ public PersistEntry[] list(String path) { return entries; } + @Override + public String getParent(String path) { + String[] bk = decodePath(path); + String bucket = bk[0]; + String key = bk[1]; + if (key.endsWith("/")) { + key = key.substring(0, key.length() - 1); + } + if (key == null || key.isEmpty()) { + throw new IllegalArgumentException("No parent exists for a bucket-only path: " + path); + } + int lastSlash = key.lastIndexOf("/"); + if (lastSlash == -1) { + return "s3://" + bucket; + } + return "s3://" + bucket + "/" + key.substring(0, lastSlash); + } + @Override public InputStream open(String path) { String[] bk = decodePath(path);