2015-02-18 2 views
1

Некоторые из документов в нашей бэкэнд-системе доступны только для чтения и динамически генерируются при запросе содержимого. Создание содержимого для этих файлов дорого, а файлы разной длины генерируются с течением времени.Возврат документов неизвестной длины с помощью механизма ITHit WebDAV

Есть ли способ вернуть приблизительную длину или длину содержимого заполнителя, которая не является фактической длиной файла, но при запросе содержимого с помощью запроса GET сгенерировать фактический файл и вернуть правильную длину и содержимое с помощью потоковые запросы? Я пробовал пропустить -1 для длины, предполагая, что это может быть магическое число, указывающее, что длина неизвестна, а затем повторяется запрос IFile.Read может использоваться для возврата документа неизвестной длины, но это не сработало.

Что я хочу избежать, это генерировать контент при просмотре каталога в проводнике, чтобы предоставить неизвестное значение ContentLength. Затем только тогда, когда выполняются вызовы IFile.Read, генерируют содержимое документа, кэшируют его и используют этот кешированный файл для выполнения запросов на чтение содержимого. Можно ли это сделать с помощью механизма ITHit WebDAV? Есть ли другой подход к этой проблеме?

Похоже, что протокол WebDAV может поддерживать возврат любой длины содержимого для документов при просмотре каталога, но при запросе содержимого может быть возвращена другая/точная длина содержимого с контентом.

ответ

1

ИТ Hit Engine WebDAV сервер не поддерживает возврат неизвестной длину файла, и вот почему:

Исходя из нашего опыта, если WebDAV сервер не возвращает правильную длину файла как при перечислении содержимого папки и чтение файла, некоторые WebDAV клиенты, такие как Microsoft Mini-redirector (Windows Shell) и Microsoft Office, не смогут открыть документ.