문제

현재 프로젝트의 경우 고객이 액세스 할 수있는 가상 파일 저장소를 제시하기 위해 WebDav를 구현하려고 생각했습니다. 지금까지 Google 리서치 만 수행했지만 두 가지 방법 만 구현할 수있는 것처럼 보입니다.

GET, PROPFIND

나는 이것이 훌륭하다고 생각한다. 나는 단지 궁금했다. 다음을 통해 파일 업로드를 구현하려는 경우

PUT

나는 그것을 구현하지 않았지만 충분히 간단 해 보인다. 내 유일한 관심사는 표준 Vista Explorer 또는 OSX Finder를 사용하는 경우 사용자에게 진행중체가 표시되는지 여부입니다.

나는 Webdav를 경험 한 사람들의 이야기를 찾고 있다고 생각합니다.

도움이 되었습니까?

해결책

많은 WebDAV 클라이언트와 읽기 전용 액세스의 경우 옵션도 지원해야합니다. 업로드를 지원하려면 업로드가 필요하며 일부 클라이언트 (MacOS X?)에는 잠금 지원이 필요합니다.

(btw, RFC 4918 저자 정보 소스).

다른 팁

약 하루의 작업에서 대부분의 WebDAV 프로토콜을 구현했습니다. http://github.com/nfarina/simpledav

Google App Engine에서 실행하기 위해 Python으로 작성했으며 다른 언어도 비슷한 노력이 될 것으로 기대합니다. 대체로, 그것은 약 2 페이지의 코드입니다.

옵션, propfind, mkcol, delete, move, put, get. 지금까지 나는 Transmit과 Cyberduck을 테스트했으며 둘 다 잘 작동합니다.

바라건대 이것은 WebDAV 서버 구현에 관심이있는 다음 사람에게 약간의 지침을 제공 할 수 있기를 바랍니다. 그것은 어려운 프로토콜이 아니며 '깊이'및 '컬렉션'및 blah와 같은 추상 언어로 매우 조밀합니다.

사양은 다음과 같습니다. http://www.webdav.org/specs/rfc4918.html

그러나 프로토콜을 이해하는 가장 좋은 방법은 클라이언트가 작업 서버와 상호 작용하는 것을 보는 것입니다. 전송을 사용하여 Box.net의 WebDav 서버에 연결하고 Charles Proxy를 사용한 트래픽을 모니터링했습니다.

파티에 늦었지만 대부분의 WebDAV 프로토콜을 구현했으며 대부분의 프로토콜을 구현해야한다고 확신 할 수 있습니다.

OS/X의 경우 잠금 및 잠금 해제가 포함 된 클래스 -2 WebDAV 지원이 필요합니다 (HTTP IF IF : 헤더의 경우 약간만이 필요합니다.) 약간만 필요합니다.)

이것들은 나의 개인적인 발견 중 일부입니다.

http://sabre.io/dav/clients/windows/ http://sabre.io/dav/clients/finder/

도움이 되었기를 바랍니다

Tomcat 아래에서 Apache Jackrabbit을 실행하는 경우 WebDav 및 업로드 된 파일을 저장하도록 구성 할 수 있습니다. 아마도 그것은 유용한 모델이거나 계획된 구현을위한 충분한 대체품 일 것입니다.

WebDav에 대한 Apache Jackrabbit 지원

또한 WebDAV 서버를 테스트하는 데 유용한 도구 인 BitKinex 클라이언트 (무료 30 일 평가판)를 알고 싶을 수도 있습니다.

Bitkinex 홈페이지

우리는 내부적으로 WebDav를 사용하여 방화벽 외부의 클라이언트에게 일부 파일 공유에 대한 폴더 기반보기를 제공합니다. 우리는 이것을 위해 IIS6을 사용하고 있습니다.

기본적으로 IIS에 가상 디렉토리를 작성하여 WebDav를 통해 사용할 수 있도록 각 네트워크 파일 시스템에 맵핑됩니다. "다른 컴퓨터에있는 공유"에서 나오는 컨텐츠로 설정 - 네트워크 디렉토리 값의 UNC 경로를 사용하십시오. 이 리소스를 제외한 모든 옵션을 켭니다. 모든 기본 콘텐츠 페이지를 비활성화하십시오. Windows Integrated Authentication을 켜십시오 (우리는 SSL을 사용하여 설정됩니다). 익명에 대한 액세스를 거부하고 인증 된 사용자에게 액세스 할 수 있도록 루트 설정이 있습니다. 우리는 또한 와일드 카드 마임 매핑 (.* to Application/Octet-stream)이 있습니다. IIS에서 WebDav 웹 서비스 확장을 활성화하십시오. 또한 액세스 할 수있는 모든 파일 서버에 권한을 위임하려면 웹 서버를 설정하여 사용자의 자격 증명을 전달할 수 있습니다.

Macintosh 클라이언트가있는 경우 Darwin 클라이언트를 위해 401 ~ 403 오류를 맵핑하는 ISAPI 필터가 필요할 수도 있습니다. Microsoft와 Apple은 디렉토리에 쓸 권한이 없을 때 상황을 처리하는 방법에 동의하지 않습니다. Apple은 401 (액세스 거부) 오류에 대한 자격 증명을 계속 보조하여 403 (금지) 오류로 변환하면이를 막을 수 없습니다. 기본적으로 Apple은 액세스하는 모든 디렉토리에 "DOT"파일을 작성하는 것을 좋아합니다. 쓰기 액세스가없는 디렉토리를 탐색하면 필터가 없으면 파인더가 충돌하게됩니다. 필요한 경우 이것에 대한 소스 코드가 있습니다.

이것은 모두 내 머리 꼭대기에서 벗어납니다. 내가 뭔가 놓친 것이 가능합니다 (가능합니까?). 문제가있는 경우 내 웹 사이트의 연락처 정보를 통해 저에게 연락하십시오.

웹 기반 제품에 Webdav 서블릿이 있습니다.

나는 Apache Jackrabbit이 그것을 구현하는 데 좋은 도움을 받았다는 것을 알았습니다. 그러나 Webdav는 클라이언트 측 지원에 대한 심각한 피타입니다.

많은 클라이언트 구현은 그들의 행동에 따라 크게 다르며 여러 종류의 버그 구현을 지원해야 할 것입니다.

몇 가지 예 : MS Vista는 SSL에 대한 인증 만 지원합니다.

대부분의 Windows 기반 WebDav 클라이언트는 WebDav-Server/Let가 SharePoint 서버라고 가정하고 그에 따라 작동하지 않습니다 (따라서 WebDAV 프로토콜에 따르면)

이것의 한 가지 예는 서버의 루트에서 허용하고 무시 무시한 잠금 요청 (예 : yourdomain.com/where/where/webdav/should/live)이 필요하다는 것입니다. 창. (이것은 당신의 물건이 serving.com/servlets/paths/thelocation에 사는 Tomcat 기계의 심각한 pita입니다)

MS Office의 대부분 (모두?) 버전은 WebDAV 링크와 다르게 응답합니다.

내 요점은 WebDAV 지원을 기존 제품에 통합하는 것이 훨씬 어려울 수 있다고 생각합니다. 가능하면 Jackrabbit WebDavserver 또는 Apache Mod_webdav와 같은 (Semi) -standalone Webdav 서버를 사용하도록 조언합니다.

OS X의 Finder Webdav 지원이 정말 까다로운 것으로 나타났습니다. 읽기 쓰기 지원을 얻으려면 다른 비트 외에도 잠금을 구현해야합니다.

Postres 데이터베이스에 WebDAV 인터페이스를 작성했는데, 여기서 Python 모듈은 데이터베이스에 계층 적 폴더와 같은 구조로 저장되었습니다. CADAVER로 액세스하는 것은 잘 작동했으며 IIRC는 GUI Windows 브라우저도 작동했지만 Finder는 읽기 전용 이외의 다른 방법으로 공유를 마운트하지 않았습니다.

따라서 진행률 표시 줄을 줄 지 모르겠습니다. 내가 다루고 있던 파일은 그들로부터의 읽기/사본이 사실상 즉각적 일 정도로 작았습니다. Finder를 사용하는 큰 파일의 사본은 아마도 진행률 표시 줄을 줄 것이라고 생각합니다. 다른 유형의 장착 공유에 대해 수행합니다.

다음은 WSGI WebDAV의 또 다른 오픈 소스 프로젝트입니다 http://code.google.com/p/wsgidav/Pyfileserver 프로젝트를 선택했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top