summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNils Schwabe2014-04-29 15:29:13 +0200
committerNils Schwabe2014-04-29 15:29:13 +0200
commit21c91bac9d4850e40776ea98575aa3611ac42679 (patch)
tree719acc22357dfe5b83ec998caf7ebcb25d1e7c07 /src
parentAdd ftp users and images in processing list are remembered (diff)
downloadmasterserver-21c91bac9d4850e40776ea98575aa3611ac42679.tar.gz
masterserver-21c91bac9d4850e40776ea98575aa3611ac42679.tar.xz
masterserver-21c91bac9d4850e40776ea98575aa3611ac42679.zip
Add check file size of uploading files and process automatically
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/openslx/imagemaster/ftp/FtpCredentialsScheduler.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/main/java/org/openslx/imagemaster/ftp/FtpCredentialsScheduler.java b/src/main/java/org/openslx/imagemaster/ftp/FtpCredentialsScheduler.java
index 8cd72df..74f9754 100644
--- a/src/main/java/org/openslx/imagemaster/ftp/FtpCredentialsScheduler.java
+++ b/src/main/java/org/openslx/imagemaster/ftp/FtpCredentialsScheduler.java
@@ -2,6 +2,7 @@ package org.openslx.imagemaster.ftp;
import java.io.File;
import java.util.Date;
+import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
@@ -9,6 +10,7 @@ import java.util.TimerTask;
import org.apache.log4j.Logger;
import org.openslx.imagemaster.App;
import org.openslx.imagemaster.Globals;
+import org.openslx.imagemaster.db.DbImage;
import org.openslx.imagemaster.util.Util;
public class FtpCredentialsScheduler extends TimerTask
@@ -22,6 +24,7 @@ public class FtpCredentialsScheduler extends TimerTask
public void run()
{
synchronized ( App.ftpServer.users ) {
+ List<DbImage> uploadingImages = DbImage.getUploadingImages(); // get the uploading images
// check all folders
for ( Map.Entry<String, Long> entry : App.ftpServer.users.entrySet() ) {
if ( entry == null )
@@ -32,8 +35,14 @@ public class FtpCredentialsScheduler extends TimerTask
continue;
File[] list = dir.listFiles();
if ( list.length == 1 ) {
- if ( ( new Date().getTime() - list[0].lastModified() ) >= timeout ) {
- // TODO: test if his file is complete by checking the file size
+ // check file size first
+ DbImage currentImage = null;
+ for (DbImage img : uploadingImages) { // find the image that was uploaded by this user
+ if (img.ftpUser == username) currentImage = img;
+ }
+ if (currentImage != null && list[0].getTotalSpace() == currentImage.fileSize) {
+ ImageProcessor.processImageAfterUpload( username, list[0].getName() );
+ } else if ( ( new Date().getTime() - list[0].lastModified() ) >= timeout ) { // check timeout
log.info( username + "'s files are too old. Deleting him and his folder." );
Util.deleteFolder( dir );
App.ftpServer.removeUser( username );