Thank you Andrew, I resolved the problem. For those who are interested, I first get the URI of the Object, transform it to URL and then use FileUtils to copy the URL to a file.
Regards, Sofiane. On 23.12.2014 17:40, Andrew Gaul wrote: > Try calling outputStream.flush() since it is a BufferedOutputStream. > Generally easier to use the Guava helpers in these situations, e.g., > Files.asByteSink(File).writeFrom(InputStream), which handles resource > management for you. Also do not forget to close all the InputStream and > OutputStream! > > On Tue, Dec 23, 2014 at 12:45:07PM +0100, Sofiane Soulfly wrote: >> I tried your solution and the problem is that it creates a temp file, >> which is empty. My objective is to download the file and its content. >> >> >> -------- Forwarded Message -------- >> Subject: Re: Download file from Swift >> Date: Mon, 22 Dec 2014 17:01:34 +0000 >> From: Everett Toews <[email protected]> >> Reply-To: [email protected] >> To: [email protected] <[email protected]> >> >> >> >> What version of jclouds are you using? >> >> Try this… >> >> ObjectApi objectApi = cloudFiles.getObjectApi(REGION, CONTAINER); >> SwiftObject swiftObject = objectApi.get("uploadObjectFromFile.txt”); >> >> // Write the object to a file >> File file = File.createTempFile("uploadObjectFromFile", ".txt"); >> BufferedOutputStream outputStream = new BufferedOutputStream(new >> FileOutputStream(file)); >> ByteStreams.copy(swiftObject.getPayload().openStream(), outputStream); >> >> Everett >> >> >> On Dec 22, 2014, at 6:23 AM, Sofiane Soulfly <[email protected]> wrote: >> >>> Hello everybody, >>> >>> after I uploaded successfully a text file to Swift, now I want download >>> that file into my file system. >>> I tried with ObjectApi.get but nothing was downloaded. >>> Thank you. >>> >>> Regards, >>> >>> SB >> >>
