سؤال

على المشروع الحالي, كنت أفكر في تنفيذ WebDAV لتقديم الظاهري ملف تخزين التي يمكن للعملاء الوصول.لقد فعلت جوجل البحوث حتى الآن ولكن يبدو أنني يمكن أن تحصل بعيدا مع تنفيذ طريقتين:

GET, PROPFIND

أعتقد أن هذا هو عظيم.أنا فقط فضولي على الرغم من.إذا أردت أن تنفذ تحميل الملف عن طريق:

PUT

لم ينفذ ذلك ، ولكن يبدو بسيطا بما فيه الكفاية.قلقي الوحيد هو ما إذا كان مقياس التقدم سيتم عرضها للمستخدم إذا كانوا يستخدمون معيار Vista Explorer أو OSX الباحث.

أعتقد أنا أبحث عن بعض القصص من الناس من ذوي الخبرة مع WebDAV.

هل كانت مفيدة؟

المحلول

وبالنسبة للعديد من عملاء WebDAV وحتى للوصول للقراءة فقط، وسوف تحتاج أيضا إلى دعم OPTIONS. إذا كنت ترغب في دعم تحميل، مطلوب PUT الواضح، وبعض العملاء و(ماك X؟) يتطلب تأمين الدعم.

و(راجع للشغل، RFC 4918 هو مصدر authorative من المعلومات).

نصائح أخرى

لقد نفذت معظم بروتوكول WebDAV في يوم العمل: http://github.com/nfarina/simpledav

كتبت في بيثون أن تعمل على Google App Engine, و أتوقع أي لغة أخرى سيكون جهد مماثل.جميع في كل شيء ، إنه عن صفحتين من التعليمات البرمجية.

لقد نفذت الطرق التالية:الخيارات PROPFIND, MKCOL, حذف, نقل, وضع, الحصول على.حتى الآن لقد اختبرت ونقل سبردوك كل عمل كبيرة مع ذلك.

نأمل أن هذا يمكن أن توفر بعض التوجيهات القادمة شخص مهتم في تنفيذ ملقم WebDAV.ليس من الصعب البروتوكول انها مجرد كثيفة جدا مع المستخرجة اللغة مثل " عمق " و "مجموعات" إلخ.

هنا المواصفات: http://www.webdav.org/specs/rfc4918.html

ولكن أفضل طريقة لفهم البروتوكول لمشاهدة العميل التفاعل مع الخادم العمل.اعتدت نقل للاتصال Box.net's ملقم WebDAV و رصد حركة المرور مع تشارلز وكيل.

وبت في وقت متأخر إلى الحزب، ولكن لقد نفذت معظم بروتوكول WebDAV وأستطيع أن أقول بكل ثقة أنك سوف تحتاج إلى تنفيذ معظم البروتوكول.

لOS / X ستحتاج الطبقة 2 الدعم WEBDAV، والذي يتضمن قفل وفتح (لقد وجدت صعوبة خاصة للتنفيذ الكامل لHTTP إذا: رأس، ولكن لمكتشف ستحتاج فقط قليلا من ذلك. )

وهذه هي بعض النتائج نظري الشخصية:

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

ويساعد هذا الأمل

إذا قمت بتشغيل اباتشي Jackrabbit تحت، يقول، القط، يمكن تكوينه لتقديم WebDAV و مخزن الملفات تحميلها. ربما من شأنها أن تكون نموذجا مفيدا، أو حتى بديلا جيدا بما فيه الكفاية لتنفيذ المخطط.

اباتشي Jackrabbit دعم ل WebDAV

وبالإضافة إلى ذلك، قد ترغب في أن تكون على علم العميل BitKinex (مجانا المحاكمة 30 يوما)، والتي وجدت ليكون أداة مفيدة لاختبار خادم WebDAV.

BitKinex الصفحة الرئيسية

ونحن استخدام WebDAV داخليا لتوفير المجلد-عرض القائمة على بعض الملفات سهم للعملاء خارج جدار الحماية.نحن نستخدم IIS6 هذا.

أساسا ، فإنه يتلخص في إنشاء الدليل الظاهري في IIS الذي خرائط لكل نظام ملفات الشبكة التي تريد جعلها متوفرة عبر WebDAV.إعداده مع المحتوى قادمة من "حصة يقع على كمبيوتر آخر" -- استخدام مسار UNC إلى مشاركة على شبكة دليل القيمة.ننتقل على جميع الخيارات ما عدا مؤشر هذا المورد.تعطيل جميع المحتوى الافتراضي صفحات.بدوره على مصادقة Windows المتكاملة (لنا هو اقامة باستخدام SSL كذلك).لدي جذور إعداد لمنع الوصول إلى مجهول تسمح بالوصول إلى أي مصادقة المستخدم.لدينا أيضا بدل تعيين MIME (.* تطبيق/ثماني بتات-دفق).تمكين WebDAV ملحق خدمة ويب في IIS.تحتاج أيضا إلى إعداد ملقم ويب تفويض أذونات على كافة ملقمات الملفات قد يكون الوصول إلى ذلك فإنه يمكن تمرير بيانات اعتماد المستخدم.

إذا كان لديك عملاء ماكنتوش قد تحتاج أيضا عامل تصفية ISAPI خرائط 401 403 أخطاء داروين العملاء.مايكروسوفت وأبل نختلف على كيفية التعامل مع الوضع عندما لا يكون لديك إذن الكتابة إلى دليل.أبل تحافظ على إرسال بيانات الاعتماد على 401 (تم رفض الوصول) خطأ ، وترجمة ذلك إلى 403 (Forbidden) خطأ يمنع هذا من الحدوث.بشكل افتراضي أبل يحب أن يكتب "نقطة" ملف في كل دليل فإنه يصل.التنقل من خلال الدلائل حيث لم يكن لديك حق الوصول للكتابة في نهاية المطاف تحطمها الباحث إذا لم يكن لديك فلتر.لدي شفرة المصدر لهذا إذا لزم الأمر.

هذا هو كل شيء من أعلى رأسي.فمن الممكن (محتمل؟) التي كنت قد غاب عن شيء.لا تتردد في الاتصال بي عن طريق معلومات الاتصال على موقع الويب الخاص بي إذا كان لديك مشاكل.

ولدينا بريمج WebDAV على منتجاتنا على شبكة الإنترنت.

ولقد وجدت اباتشي Jackrabbit مساعدة جيدة لتنفيذ ذلك. لكن WEBDAV هو P.I.T.A خطيرة على دعم العميل.

والعديد من تنفيذ العميل تختلف على نطاق واسع في سلوكهم وعلى الأرجح سوف تضطر إلى دعم العديد من أنواع مختلفة من تطبيقات تنصتت.

وبعض الأمثلة على ذلك: MS فيستا يدعم فقط المصادقة على SSL

ومعظم النوافذ تستند إلى العميل WEBDAV يفترض بك WEBDAV خادم / let هو خادم شير وستتصرف وفقا لذلك (وبالتالي ليس وفقا لبروتوكول WebDAV)

وأحد الأمثلة على ذلك هو أنك بحاجة للسماح وطلب LOCK غير المصادق على جذر الخادم الخاص بك (أي yourdomain.com/ لا yourdomain.com/where/webdav/should/live) آخر كنت متعود تكون قادرة على إرسال الق في ويندوز MS. (هذا هو P.I.T.A خطورة على جهاز هر حيث يعيش الاشياء الخاصة بك غن في server.com/servlets/paths/thelocation)

ومعظم (جميع؟) إصدارات مكتب MS تستجيب مختلفة إلى وصلات WEBDAV.

وأعتقد أن وجهة نظري هو دمج الدعم WEBDAV إلى منتج موجود يمكن أن يكون أصعب بكثير ثم كنت تتوقع. وإذا أمكن أود أن المشورة لاستخدام (شبه) السياحى- ملقم WebDAV مثل webdavServer jackrabbit، أو اباتشي mod_webdav

ولقد وجدت الدعم الباحث WEBDAV OS X ليكون صعب حقا. من أجل الحصول على دعم للقراءة والكتابة، لديك لتنفيذ LOCK، بالإضافة إلى أجزاء أخرى.

وكتبت على واجهة WebDAV للقاعدة بسترس، حيث تم تخزينها وحدات الثعبان في قاعدة البيانات في بنية مثل مجلد الهرمي. الوصول إليه مع جيفة سار على ما يرام، وIIRC متصفح ويندوز واجهة المستخدم الرسومية عملت أيضا، لكنه رفض الباحث لتحميل حصة أي شيء بخلاف قراءة فقط.

وهكذا، وأنا لا أعرف ما إذا إذا سيعطي شريط التقدم. كانت الملفات كنت أتعامل مع صغيرة بما يكفي أن قراءة / نسخة منها كانت لحظية تقريبا. أعتقد نسخة من ملف كبير باستخدام الباحث ربما تعطي شريط تقدم - هو الحال بالنسبة لأي نوع آخر من حصة شنت

.

وهنا هو مشروع مفتوح المصدر آخر ل WebDAV WSGI      http://code.google.com/p/wsgidav/ حيث التقطت المشروع PyFileServer.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top