各ファイルを開かずにファイルのコンテンツをダウンロードするにはどうすればよいですか?
まず、ファイルを個別にダウンロードする際の問題点を教えてください。 (指定された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
を使用してクエリを埋め込みます。
出典
2017-05-03 20:11:05
hnh