Removes the need for POST to collection which would hit against upload
limits.
The client tries to auto rename the file by adding a suffix "(2)".
It tries to use the file list on the client side to guess a
suitable name. In case a file still cannot be uploaded and creates a
conflict, which can happen when the file was concurrently uploaded, the
logic will continue increasing the suffix.
- uses PUT method with jquery.fileupload for regular and public file
lists
- for IE and browsers that don't support it, use POST with iframe
transport
- implemented Sabre plugin to handle iframe transport and redirect the
embedded PUT request to the proper handler
- added RFC5995 POST to file collection with "add-member" property to
make it possible to auto-rename conflicting file names
- remove obsolete ajax/upload.php and obsolete ajax routes
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
The files home node must also return DAV properties like etag,
permissions, etc for the clients to work like they did with the old
endpoint.
This fix makes FilesHome extend the Sabre Directory class, this makes
the FilesPlugin and other plugins recognize it as a directory and will
retrieve the matching properties when applicable.
Downstream of https://github.com/owncloud/core/pull/26066
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
For owncloud/client#5056
Users can configure arbitrary subfolders for syncing, therefore we should
always return it when asked for.
The sync client makes sure to not always ask for it to save bandwidth.
This property can be queries by the clients so they know the max
permissions they can use to share a file with. This will improve the UX.
The oc:permissions proptery is not enough since mountpoints have
different permissions (delete + move by default).
By making it a new property the clients can just request it. On older
servers it will just return a 404 for that property (and thus they know
they have to fall back to their hacky work arounds). But if the property
is returned the client can show proper info.
* unit tests
* intergration test
When we overwrite a checksumed file with a file without a checksum we
should remove the checksum from the server.
This is done by setting the column to empty.
Instead of returning
<oc:checksum>TYPE:CHECKSUM</oc:checksum>
Return
<oc:checksums>
<oc:checksum>TYPE:CHECKSUM</oc:checksum>
</oc:checksums>
This will allow us to expand in the future to multiple checksums.
Without doing just string concatenation.
And even for a single checksum it is now correct.
Introduce a new property "oc:fileid" to return the internal file id.
This is because the original "oc:id" property is a compound and it is
not possible to extract the real id without knowing the instance id. The
instance id is not available to external clients.
Fix regression that makes PROPPATCH of mtime work like it did in OC <=
8.0.
The PROPPATCH must be done on the "lastmodified" property.
The "getlastmodified" now return 403 again.
Fixes#5251
If we perform a move we need to make sure first that the source can be
deleted. Else the dest might be cleared but the move will fail later.
* Added unit tests
Eventually we need more and better checking here.
As an additional security hardening it's sensible to serve these files with a Content-Disposition of 'attachment'. Currently they are served 'inline' and get a "secure mimetype" assigned in case of potential dangerous files.
To test this change ensure that:
- [ ] Syncing with the Desktop client still works
- [ ] Syncing with the Android client still works
- [ ] Syncing with the iOS client still works
I verified that the 1.8 OS X and iOS client still work with this change.