Apache Commons FileUtils.copyURLToFile - Каталог, который уже существует, не может быть создан - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь загрузить файл JSON и сохранить его в локальном каталоге.Каталог (/ data / provisioning) уже существует, и ему даны 776 (u = rwx, g = rwx, o = rw) в качестве разрешений.Родительский каталог (/ data) также получил 776 разрешений.

Я использую метод Apache Commons FileUtils.copyURLToFile (..) для загрузки файла, например:

String filePathToSave = "/data/provisioning/nexus_contents.json";
String url = "http://repository.obfuscated.com/nexus/url/to/json/file";

try {
    FileUtils.copyURLToFile(
            new URL(url)
    , new File(filePathToSave),
            5000,
            5000);
} catch (MalformedURLException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

Однако, к моему удивлению, я получаю эту ошибку:

java.io.IOException: Каталог «/ data / provisioning» не может быть создан в org.apache.commons.io.FileUtils.openOutputStream (FileUtils.java:356) в org.apache.commons.io.FileUtils.openOutputStream (FileUtils.java:319) в org.apache.commons.io.FileUtils.copyToFile (FileUtils.java:1552) в org.apache.commons.io.FileUtils.copyInputStreamToFile (FileUtils.java).: 1528) в org.apache.commons.io.FileUtils.copyURLToFile (FileUtils.java:1506) в deploy.download.Downloader.getAndSaveNexusJSON (Downloader.java:26) в deploy.test.DeploymentTest.downloader_get_Nexus_JJ (развертывание: развертывание424) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImphoccessorImpl.java:43) в java.lang.reflect.Method.invoke (Method.java:498) в org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall (FrameworkMethod.java:47) в org.junit.internal.runners.model.ReflectiveCallable.run (ReflectiveCallable.java:12) в org.junit.runners.model.FrameworkMethod.invokeExplosively (FrameworkMethod.java:44) в org.junit.internal.runners.statedhodehokejava: 17) в org.junit.runners.ParentRunner.runLeaf (ParentRunner.java:271) в org.junit.runners.BlockJUnit4ClassRunner.runChild (BlockJUnit4ClassRunner.jner:70) в org.junnjun.java: 50) в org.junit.runners.ParentRunner $ 3.run (ParentRunner.java:238) в org.junit.runners.ParentRunner $ 1.schedule (ParentRunner.java:63) в org.junit.runners.ParentRunner.runChildren (ParentRunner.java:236) в org.junit.runners.ParentRunner.access $ 000 (ParentRunner.java:53) в org.junit.runners.ParentRunner $ 2.оценке (ParentRunner.java:229) в org.junit()intellij.rt.execution.junit.IdeaTestRunner $ Repeater.startRunnerWithArgs (IdeaTestRunner.java:47) в com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart (JUnittll.inteij.jtij.jtj)junit.JUnitStarter.main (JUnitStarter.java:70)

Что мне здесь не хватает?

...