2017-05-03 27 views
0

curl(bash)を使用してOwnCloudインスタンスと通信する必要があります。OwnCloud CalDAVの全範囲/範囲をcUrlでダウンロードして操作する

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? 範囲内のカレンダーエントリをダウンロードするだけでよいですか?

答えて

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を使用してクエリを埋め込みます。

関連する問題