- stateless
- tell, don't ask
- graceful degredation (should be possible to manually split and submit files via forms)
- a minimum of logic
- chunk files
- submit server-provided forms
- Don't overload standard single-request/response POST
- POST to / -> URL (actually an ID, but...)
- POST repreatedly to URL
- (optional) GET URL (?) for list of associated POSTs
- POST with list of URLs to concat
Benefits from being fully-distributed.
The same could be done using PATCH
- POST to / with total length -> URL
- GET URL for PATCH form with server-specified byte start and stop values
- Server stops serving PATCH form when length is reached
- POST to / with total length -> URL
- GET URL for rolling list of PUT or PATCH forms to specific chunks (maybe best with distinct URLs)
- POST to / with form containing hidden
complete
(default: true) andoffset
(default: 0) inputs - js sets
complete
to false -> server provides a PATCH form with an incrementing offset (and possibly end byte) value - js sets
complete
to true on last PATCH