I am focusing on a task that will allow large files (GB+) to become submitted via HTTP PUT and I have to implement a technique for returning to the upload. When a file is submitted and completed it's complete and can't be modified. To date, I've 2 options in your mind but neither which fit perfectly:
Client transmits a preliminary Mind request around the file that will return either 404 if it doesn't exist or even the file particulars including current size together with an HTTP X-Header like
X-Can-Resume or something like that like this to specify if the file could be started again along with a
Range header indicating which bytes it's. This appears OK but I am not interested in the X-Header because it removes in the HTTP standard.
Client transmits a PUT request having a
Content-Length header of bytes with no body, the server may then send back a
308 Resume Incomplete (as suggested here http://code.google.com/p/gears/wiki/ResumableHttpRequestsProposal) or perhaps a
202 Accepted header to point whether or not to resume or start right from the start. This appears acceptable aside from using a non-standard header.
Every other suggestions on the easiest method to implement this?
Either in solutions there's no existing client and server implementations, so I am speculating you'll code both. I believe you need to just look for a right balance between your easiest and what's referred to within the gears proposal (incidentally, you most likely know Gears is dead), and be ready to change whenever a standard emerges.
Basically would implement this feature, I'd make it easy for the customer to upload in portions and that i would give a message digest overall content and also the portions.