Bạn Tìm Gì Hôm Nay ...?
Tất cả đều có chỉ trong 1 nốt nhạc !
Nếu cần hỗ trợ chi tiết gọi 1900 9477
This document provides a quick overview of the WebDAV operations supported in Cloud Drive30s, to keep things readable it won’t go into many details for each operation, further information for each operation can be found in the corresponding rfc where applicable
The base url for all WebDAV operations for a Cloud Drive30s instance is /remote.php/webdav
.
All requests need to provide authentication information, either as a Basic Auth header or by passing a set of valid session cookies.
All WebDAV requests can be easily tested out using curl
by specifying the request method (GET
, PROPFIND
, PUT
, etc) and setting a request body where needed.
For example: you can perform a PROPFIND
request to find files in a folder using
curl -u username:password 'https://cloud.example.com/remote.php/webdav/files/username/folder' -X PROPFIND --data '<?xml version="1.0" encoding="UTF-8"?>
<d:propfind xmlns:d="DAV:">
<d:prop xmlns:oc="http://owncloud.org/ns">
<d:getlastmodified/>
<d:getcontentlength/>
<d:getcontenttype/>
<oc:permissions/>
<d:resourcetype/>
<d:getetag/>
</d:prop>
</d:propfind>'
The contents of a folder can be listed by sending a PROPFIND
request to the folder.
PROPFIND remote.php/webdav/files/user/path/to/folder
By default, a PROPFIND
request will only return a small number of properties for each file: last modified date, file size, whether it’s a folder, etag and mime type.
You can request additional properties by sending a request body with the PROPFIND
request that lists all requested properties.
<?xml version="1.0"?>
<d:propfind xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns" xmlns:nc="http://nextcloud.org/ns">
<d:prop>
<d:getlastmodified />
<d:getetag />
<d:getcontenttype />
<d:resourcetype />
<oc:fileid />
<oc:permissions />
<oc:size />
<d:getcontentlength />
<nc:has-preview />
<oc:favorite />
<oc:comments-unread />
<oc:owner-display-name />
<oc:share-types />
</d:prop>
</d:propfind>
The following properties are supported:
{DAV:}getlastmodified
{DAV:}getetag
{DAV:}getcontenttype
{DAV:}resourcetype
{DAV:}getcontentlength
{http://owncloud.org/ns}id
The fileid namespaced by the instance id, globally unique{http://owncloud.org/ns}fileid
The unique id for the file within the instance{http://owncloud.org/ns}favorite
{http://owncloud.org/ns}comments-href
{http://owncloud.org/ns}comments-count
{http://owncloud.org/ns}comments-unread
{http://owncloud.org/ns}owner-id
The user id of the owner of a shared file{http://owncloud.org/ns}owner-display-name
The display name of the owner of a shared file{http://owncloud.org/ns}share-types
{http://owncloud.org/ns}checksums
{http://nextcloud.org/ns}has-preview
{http://owncloud.org/ns}size
Unlike getcontentlength
, this property also works for folders reporting the size of everything in the folder.You can request properties of a folder without also getting the folder contents by adding a Depth: 0
header to the request.
A file can be downloaded by sending a GET
request to the WebDAV url of the file.
GET remote.php/webdav/files/user/path/to/file
A file can be uploading by sending a PUT
request to the file and sending the raw file contents as the request body.
PUT remote.php/webdav/files/user/path/to/file
Any existing file will be overwritten by the request.
A folder can be created by sending a MKCOL
request to the folder.
MKCOL remote.php/dav/files/user/path/to/new/folder
A file or folder can be created by sending a DELETE
request to the file or folder.
DELETE remote.php/webdav/files/user/path/to/file
When deleting a folder, it’s contents will be deleted recursively.
A file or folder can be moved by sending a MOVE
request to the file or folder and specifying the destination in the Destination
header as full url.
MOVE remote.php/dav/files/user/path/to/file
Destination: https://cloud.example/remote.php/webdav/files/user/new/location
The overwrite behavior of the move can be controlled by setting the Overwrite
head to T
or F
to enable or disable overwriting respectively.
A file or folder can be copied by sending a COPY
request to the file or folder and specifying the destination in the Destination
header as full url.
COPY remote.php/dav/files/user/path/to/file
Destination: https://cloud.example/remote.php/webdav/files/user/new/location
The overwrite behavior of the copy can be controlled by setting the Overwrite
head to T
or F
to enable or disable overwriting respectively.
A file or folder can be marked as favorite by sending a PROPPATCH
request to the file or folder and setting the oc-favorite
property
PROPPATCH remote.php/webdav/files/user/path/to/file
<?xml version="1.0"?>
<d:propertyupdate xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns">
<d:set>
<d:prop>
<oc:favorite>1</oc:favorite>
</d:prop>
</d:set>
</d:propertyupdate>
Setting the oc:favorite
property to 1 marks a file as favorite, setting it to 0 un-marks it as favorite.
Favorites for a user can be retrieved by sending a REPORT
request and specifying oc:favorite
as a filter
REPORT remote.php/webdav/files/user/path/to/folder
<?xml version="1.0"?>
<oc:filter-files xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns" xmlns:nc="http://nextcloud.org/ns">
<oc:filter-rules>
<oc:favorite>1</oc:favorite>
</oc:filter-rules>
</oc:filter-files>
File properties can be requested by adding a <d:prop/>
element to the request listing the requested properties in the same way as it would be done for a PROPFIND
request.
When listing favorites, the request will find all favorites in the folder recursively, all favorites for a user can be found by sending the request to remote.php/webdav/files/user