2017-05-03 14 views
0

컬 (bash)을 사용하여 OwnCloud 인스턴스와 통신해야합니다.Curl을 통해 OwnCloud CalDAV 전체/범위를 다운로드하여 조작하십시오.

curl -k --user "${login}:${password}" -X PROPFIND Source: "https://owncloud.jujens.eu/remote.php/caldav/calendars/jujens/defaultcalendar" 

출처 : 내가 아는

방법 달력에 저장을 .ics 파일의 목록을 다운로드 할 (Use a webdav service with curl)

그러나 각을 열지 않고 파일의 콘텐츠를 다운로드하려면 어떻게 하나? 범위 내의 캘린더 항목을 다운로드 만 할 수 있습니까?

답변

1

각 파일을 열지 않고 파일 내용을 어떻게 다운로드합니까?

우선 : 파일을 개별적으로 다운로드 할 때의 문제점은 무엇입니까? (주어진 URL에 GET을 통해) 엄청나게 많은 양의 데이터로 작업하지 않으면 GET을 병렬로 실행하면 실제로 더 빠를 수 있습니다.

서버가 지원하는 경우 (대부분), CalDAV multiget REPORT, RFC 4791 7.9를 발행 할 수 있습니다. 또한 여기에 설명 : Building a CalDAV client 예 :

REPORT /calendars/johndoe/home/ HTTP/1.1 
Depth: 1 
Prefer: return-minimal 
Content-Type: application/xml; charset=utf-8 
Accept: application/xml 

<c:calendar-multiget xmlns="DAV:" xmlns:c="urn:ietf:params:xml:ns:caldav"> 
    <prop> 
    <getetag /> 
    <c:calendar-data /> 
    </prop> 
    <href>/calendars/johndoe/home/132456762153245.ics</href> 
    <href>/calendars/johndoe/home/fancy-caldav-client-1234253678.ics</href> 
</c:calendar-multiget> 

그냥 범위 내에서 일정 항목을 다운로드 할 수 있습니까?

예, CalDAV calendar-query REPORT을 사용하여 지정된 시간대의 데이터를 다운로드 할 수도 있습니다. 예 :

REPORT /calendars/johndoe/home/ HTTP/1.1 
Depth: 1 
Prefer: return-minimal 
Content-Type: application/xml; charset=utf-8 
Accept: application/xml 

<calendar-query xmlns:D="DAV:" xmlns="urn:ietf:params:xml:ns:caldav"> 
    <D:prop> 
    <D:getetag /> 
    <calendar-data /> 
    </D:prop> 
    <filter> 
    <comp-filter name="VCALENDAR"> 
     <comp-filter name="VEVENT"> 
     <time-range start="20060104T000000Z" 
        end="20060105T000000Z"/> 
     </comp-filter> 
    </comp-filter> 
    </filter> 
</calendar-query > 

실제로 지원되는 일정 필터는 서버마다 다릅니다.

curl을 사용하여 보고서를 발행하려면 -X REPORT을 사용하고 -d을 사용하여 쿼리를 포함하십시오.