diff options
author | Harald Musum <musum@verizonmedia.com> | 2021-08-30 07:38:40 +0200 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2021-08-30 07:38:40 +0200 |
commit | 003dd0e2873aa1045e4ad9d06671931823e908d8 (patch) | |
tree | 437f63bc5c12cb122a39f0497bdb96ab6f0f1ad6 /configserver | |
parent | 83c45664c60e8811402299b794accdee9842889e (diff) |
relative path may contain directories, make sure to create them
Diffstat (limited to 'configserver')
2 files changed, 9 insertions, 7 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/ApplicationFileManager.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/ApplicationFileManager.java index eb4159276db..bde8567c34e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/ApplicationFileManager.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/ApplicationFileManager.java @@ -40,7 +40,7 @@ public class ApplicationFileManager implements AddFileInterface { @Override public FileReference addUri(String uri, String relativePath) { - File file = download(uri); + File file = download(uri, relativePath); try { return addFile(file); } catch (IOException e) { @@ -52,7 +52,7 @@ public class ApplicationFileManager implements AddFileInterface { @Override public FileReference addBlob(ByteBuffer blob, String relativePath) { - File file = writeBlob(blob); + File file = writeBlob(blob, relativePath); try { return addFile(file); } catch (IOException e) { @@ -62,12 +62,13 @@ public class ApplicationFileManager implements AddFileInterface { } } - private File writeBlob(ByteBuffer blob) { + private File writeBlob(ByteBuffer blob, String relativePath) { FileOutputStream fos = null; File file = null; try { Path path = Files.createTempDirectory(""); - file = new File(path.toFile(), "blob"); + file = new File(path.toFile(), relativePath); + Files.createDirectories(file.getParentFile().toPath()); fos = new FileOutputStream(file); fos.write(blob.array(), blob.arrayOffset(), blob.remaining()); return file; @@ -84,13 +85,14 @@ public class ApplicationFileManager implements AddFileInterface { } } - private File download(String uri) { + private File download(String uri, String relativePath) { File file = null; FileOutputStream fos = null; ReadableByteChannel rbc = null; try { Path path = Files.createTempDirectory(""); - file = new File(path.toFile(), "uri"); + file = new File(path.toFile(), relativePath); + Files.createDirectories(file.getParentFile().toPath()); URL website = new URL(uri); rbc = Channels.newChannel(website.openStream()); fos = new FileOutputStream(file); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileDBRegistryTestCase.java b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileDBRegistryTestCase.java index bc9ce44d061..dbc214adef2 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileDBRegistryTestCase.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileDBRegistryTestCase.java @@ -26,7 +26,7 @@ public class FileDBRegistryTestCase { private static final String FOO_FILE = "files/foo.json"; private static final String NO_FOO_FILE = "files/no_foo.json"; private static final String BLOB_NAME = "myblob.name"; - private static final FileReference BLOB_REF = new FileReference("2e49b445ca461d35"); + private static final FileReference BLOB_REF = new FileReference("12f292a25163dd9"); private static final FileReference FOO_REF = new FileReference("b5ce94ca1feae86c"); @Test |