Opened 13 years ago

Last modified 13 years ago

#2614 closed Feature request

uploads as atomic transactions

Reported by: mindplay Owned by:
Priority: normal Component: FileZilla Server
Keywords: Cc: mindplay, cybot_tm, Alexander Schuch, Tim Kosse
Component version: Operating system type:
Operating system version:

Description

uploads are currently progressive - that is, the file is created in it's destination, and is then gradually appended during upload.

in order to cooperate well with other server software (e.g. scheduled tasks, pickup scripts, etc.) uploads need to be atomic transactions - that is, the physical file needs to be created "invisibly", in a temporary folder on the destination drive.

once the upload is completed, the file can then be renamed to it's destination filename/folder.

this way, pickup scripts, scheduled tasks, backup applications, etc. will never find a partially uploaded file.

this is crucial if, for example, you have a script that picks up a CSV file on a schedule - currently, if you're unlucky, you'll pick up the file while it's incomplete, and your data will only be partially imported.

Change History (4)

comment:1 by cybot_tm, 13 years ago

i have this problem too - if uploading to a webserver i get errors (unexpected $end in php scripts) in my logfile - caused by accessing the file while uploading

but somewhow i thought this is a feature missing by my server not by the client ...

comment:2 by Alexander Schuch, 13 years ago

Back then I used a temporary upload folder where CVS files get uploaded. A cron script checks the folder for files whose last modification date is longer ago than 15 minutes. If such a file is found, it is mv'ed to the proper location from where it can be processed.

Why is this a feature request for FileZilla Server?

comment:3 by mindplay, 13 years ago

Why is this a feature request for FileZilla Server?

Because it is a generally useful feature, not something you should have to manually implement a work-around for in every application using files uploaded to a FileZilla Server. And as said, not only your own applications currently have to rely on a custom solution - but existing third-party backup applications, for example, don't always implement a (good) workaround for this problem. All-round, it is a feature that is best implemented by the server, rather than by each client application...

but somewhow i thought this is a feature missing by my server not by the client ...

in deed, thus posted under the FileZilla Server category :)

comment:4 by Tim Kosse, 13 years ago

From the server point of view, an incomplete upload looks exactly like a successful upload. Implementing this is a client issue.

Note: See TracTickets for help on using tickets.