목차
파고들기
그룹웨어 통합
달력 통합
달력과 이벤트에 접근
달력 객체
"Calendar manager service"를 통해서 back end에서 달력 컨텐츠에 쿼리할 수 있다.
Calendars
Calendar providers
넥스트 클라우드 앱들은 넥스트 클라우드의 CalDAV 백 엔드의 내부 달력외에도 달력을 등록할 수 있다. 달력은 오직 요구하면 로딩된다. 그래서 lazy provider mechanism이 사용된다.
CalendarProvider 클래스는 ICalendarProvider 인터페이스를 구현해야 한다.
Write support
Handling iMIP data
Resources
Rooms
Client API
Webdav
Basic APIs
WebDAV basics
base url: /remote.php/dav
모든 요청은 인증정보가 필요하다.
Testing requests with curl
WebDAV 요청은 curl로 간단하게 테스트할 수 있다.
예를 들어, 폴더에서 파일들을 찾는 요청을 할 수 있다.
$ curl -u username:password 'https://cloud.example.com/remote.php/dav/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>'
Listing folders
rfc4918: https://tools.ietf.org/html/rfc4918
폴더에 PROPFIND요청을 보내서 폴더의 컨텐츠를 리스트할 수 있다.
PROPFIND remote.php/dav/files/user/path/to/folder
Requesting properties
기본적으로 수정일시, 파일 크기, 폴더여부, eTag, mime type을 리턴한다.
PROPFIND요청을 보낼 때 추가속성을 요청할 수 있다.
<?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 />
<nc:contained-folder-count />
<nc:contained-file-count />
</d:prop>
</d:propfind>
지원되는 속성들
{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
Unlikegetcontentlength
, this property also works for folders reporting the size of everything in the folder.{http://nextcloud.org/ns}rich-workspace
this property is provided by the text app{http://nextcloud.org/ns}contained-folder-count
The number of folders directly contained in the folder (not recursively){http://nextcloud.org/ns}contained-file-count
The number of files directly contained in the folder (not recursively)
Getting properties for just the folder
요청헤더에 Depth: 0
을 추가하면 폴더 컨텐츠 없이 폴더 속성을 요청할 수 있다.
Downloading files
GET remote.php/dav/files/user/path/to/file
Uploading files
PUT remote.php/dav/files/user/path/to/file
Creating folders ([rfc:4918 rfc4918])
MKCOL remote.php/dav/files/user/path/to/new/folder
Deleting files and folders ([rfc:4918 rfc4918])
DELETE remote.php/dav/files/user/path/to/file