KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm trying to use Apache Commons Net for FTP file transfers. Problem is files are intermittently arriving at the server corrupt. By 'corrupt' I mean that WinRAR tells me a ZIP file has an 'Unexpected end of archive' . Sometimes the files are completely empty. I have noticed that this happens more for larger files (100kb+), however does happen for small files too (20kb). I know for a fact that the source zip file being uploaded is valid, and is only 243kb. I do not get any errors/exceptions from the code. Here's the code being executed: int CON_TIMEOUT = (int) TimeUnit.SECONDS.toMillis(20); // fail if can't connect within 20 seconds int LIVE_TIMEOUT = (int) TimeUnit.MINUTES.toMillis(5); // allow up to 5 minutes for data transfers FTPClient client = new FTPClient(); client.setConnectTimeout(CON_TIMEOUT); client.setDataTimeout(LIVE_TIMEOUT); client.connect(host); client.setSoTimeout(LIVE_TIMEOUT); client.login(user, pass); client.changeWorkingDirectory(dir); log("client ready"); File file = new File(filePath); String name = new Date().getTime() + "-" + file.getName(); InputStream fis = null; try { fis = new FileInputStream(file); if (!client.storeFile(name, fis)) throw new RuntimeException("store failed"); log("store " + name + " complete"); } finally { IOUtils.closeQuietly(fis); try { client.logout(); log("logout"); } catch (Throwable e) { log("logout failed", e); } try { client.disconnect(); log("disconnect"); } catch (Throwable e) { log("disconnect failed", e); } } and some logs: 2010-08-10 21:32:38 client ready 2010-08-10 21:32:49 store 1281439958234-file.zip complete 2010-08-10 21:32:49 logout 2010-08-10 21:32:49 disconnect 2010-08-10 21:32:50 client ready 2010-08-10 21:33:00 store 1281439970968-file.zip complete
Tags (comma-separated)
Save Edits
Cancel