aboutsummaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2021-08-30 07:38:40 +0200
committerHarald Musum <musum@verizonmedia.com>2021-08-30 07:38:40 +0200
commit003dd0e2873aa1045e4ad9d06671931823e908d8 (patch)
tree437f63bc5c12cb122a39f0497bdb96ab6f0f1ad6 /configserver
parent83c45664c60e8811402299b794accdee9842889e (diff)
relative path may contain directories, make sure to create them
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/ApplicationFileManager.java14
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileDBRegistryTestCase.java2
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