ฉันจะคัดลอก / ดาวน์โหลดไดเรกทอรี webdav ทั้งหมดซ้ำได้อย่างไร


9

เมื่อฉันพยายามที่จะคัดลอกโฟลเดอร์จากเซิร์ฟเวอร์ webdav ไปยังโลคัลดิสก์โดยใช้ Nautilus มันจะคัดลอกสิ่งที่เป็นไปได้ว่าเป็นไฟล์รายการ (xml พร้อมรายชื่อไดเรกทอรี ฯลฯ ) ด้วยซากศพฉันได้รับไฟล์ว่างเปล่า

ฉันต้องการคัดลอกทรีไดเรกทอรีทั้งหมดซ้ำ ไม่มีใครรู้ว่าฉันสามารถทำสิ่งนี้ได้อย่างไร

ps: ฉันใช้ Ubuntu 11.04 กับ Nautilus 2.32.2.1 และ Cadaver 0.23.3


คุณต้องการเครื่องมือที่มี GUI หรือ "ดีพอ" สำหรับคุณหรือไม่?
Ocaso Protal

ฉันดูอย่างรวดเร็วและไม่ได้เรียกร้องให้ทำ webdav ... มันจะได้ผลสำหรับฉันถ้ามันเป็นเช่นนั้น
drevicko

2
ลองสิ่งนี้: wget --user = {ชื่อผู้ใช้} - รหัสผ่าน = {รหัสผ่าน} - รอ = 20 - จำกัด อัตรา - 20K -r -p -U Mozilla http: // {เว็บไซต์} หากใช้งานได้ไม่ดีให้เพิ่ม เป็นคำตอบ;)
Rinzwind

1
แต่ webdav เป็นเพียง https ธรรมดาดังนั้น wget จึงควรใช้งานได้ การค้นหา google อย่างรวดเร็วทำให้ฉันastron.nl/northstar/nswiki/lib/exe/ ......เพื่อดูภาพรวมอย่างรวดเร็วเกี่ยวกับ wget ด้วย webdav
Ocaso Protal

1
ที่น่าสนใจ .. เมื่อฉันชี้ไปยังไดเรกทอรี / คอลเลกชัน webdav จะคว้าไฟล์ html สำหรับไดเรกทอรีนั้น (เช่น: ด้วยรายการสิ่งที่มีหน้าเว็บ) จากนั้นก็บ่น: "localhost / webdav / calibre-library: ไม่ใช่ directorylocalhost /webdav/calibre-library/index.html: ไม่ใช่ไดเรกทอรี " เมื่อฉันชี้ไปที่รูท webdav มันจะเป็นการสุ่ม ... จบลงด้วยการเริ่มดาวน์โหลดเว็บเซิร์ฟเวอร์ whold .. โปรดทราบว่ามันเป็น https เท่านั้นและลงนามด้วยตนเองดังนั้นฉันจึงต้องเพิ่ม '- ไม่มีการตรวจสอบใบรับรอง'
drevicko

คำตอบ:


3

คำตอบนี้สรุปข้อเสนอแนะที่ได้รับในความคิดเห็นโดย @Ocaso และ @Rinzwind

ฉันใช้สิ่งนี้:

wget -r -nH -np --cut-dirs=1 --no-check-certificate -U Mozilla --user={uname} 
    --password={pwd} https://my-host/my-webdav-dir/my-dir-in-webdav

ไม่สมบูรณ์ (ดาวน์โหลดจำนวนมาก 'index.html? C = M; O = D' และสิ่งที่คล้ายกัน) แต่ใช้งานได้ดี

การดาวน์โหลด "-r" ซ้ำ ๆ ตามลิงค์ต่างๆ

"-np" ป้องกันไม่ให้ไปยังไดเรกทอรีหลัก (มิฉะนั้นคุณจะดาวน์โหลดทั้งเว็บไซต์!)

"-nH" ป้องกันการสร้างไดเรกทอรีชื่อ "my-host" (ซึ่งฉันไม่ต้องการ)

"--cut-dirs = 1" ป้องกันการสร้างไดเรกทอรีชื่อ "my-webdav-dir"

"- ไม่มีการตรวจสอบใบรับรอง" เป็นเพราะฉันใช้ใบรับรองแบบลงนามด้วยตนเองบนเซิร์ฟเวอร์ webdav (ฉันยังบังคับให้ https)

"-U Mozilla" ตั้งค่าตัวแทนผู้ใช้ในคำขอ http เป็น "Mozilla" - เซิร์ฟเวอร์ webdav ของฉันไม่ต้องการสิ่งนี้จริง ๆ แต่ฉันได้รวมไว้ด้วย


ใช้นี้เพื่อดาวน์โหลดไฟล์จาก nextcloud This is the WebDAV interface. It can only be accessed by WebDAV clients such as the Nextcloud desktop sync client.มันไม่ดาวน์โหลดไฟล์ที่มีเนื้อหา: ความคิดใด ๆ ที่เกิดขึ้น?
Micromegas

ฉันเดาว่า nextcloud คาดหวังตัวแทนผู้ใช้ที่ดูเหมือนไคลเอนต์ WebDAV (ตรงข้ามกับ Mozilla ซึ่งเป็นเบราว์เซอร์) หากคุณมีไคลเอนต์ของพวกเขาและแพ็คเก็ตดมกลิ่น (เช่น: wireshark) คุณสามารถค้นหาตัวแทนผู้ใช้ที่ใช้ในคำขอมัน
drevicko

อีกทางเลือกหนึ่งที่พบว่าเป็นของตัวแทนผู้ใช้อาจจะ "Mozilla / 5.0 (Android) Nextcloud-Android / 3.8.0" จากเว็บ
drevicko

ขอบคุณมาก drevicko !! ฉันจะทำเช่นนี้
Micromegas

นอกจากนี้ที่นี่ โชคดี!
drevicko

3

จริง ๆ แล้วกับ Cadaver คุณสามารถทำไดเร็กตอรี่cdที่คุณต้องการดาวน์โหลดไฟล์และmget *.


2
เพื่อให้เป็นคำตอบที่มีประโยชน์คุณจะต้องบอกผู้ใช้ว่าจะทำอย่างไร
RolandiXor

1
หืมมมmget * .ในโฟลเดอร์หรือผลลัพธ์ในmget foldername 501 Not Implementedมันใช้งานได้จริงสำหรับคุณบน box.com หรือไม่?
alexanderadam

@Wurstsalat คุณต้องไม่ใส่ส่วนเสริม '.' ; นอกจากนี้ยังใช้ชื่อไฟล์เป็นอาร์กิวเมนต์ดังนั้นคุณจะต้องทำ `mget foldername / filename '
JasoonS

ไม่ได้ผลสำหรับฉันเมื่อมีไดเรกทอรีย่อย ( ส่วนที่เรียกซ้ำ )
Radon Rosborough

3

คุณสามารถใช้ dav2fs เพื่อติดตั้งเซิร์ฟเวอร์ webdav จากนั้นคุณสามารถเข้าถึงได้เช่นเดียวกับที่ทำในไดเรกทอรีท้องถิ่น


ยังใช้วิธีนี้เข้าถึงไฟล์และโฟลเดอร์ได้ง่าย
bobbyrne01

และวิธีนี้เป็นวิธีที่ช้าที่สุดเมื่อเทียบกับวิธีอื่นและจะไม่ทำงานเสมอไป (ข้อบกพร่องที่เกี่ยวข้องกับชื่อไฟล์ -squirks)
alexanderadam

3

หรือคุณสามารถกำหนดให้มันเป็นพา ธ ที่จะเข้าถึงได้โดยเป็นส่วนหนึ่งของระบบไฟล์ของคุณเอง

sudo mount -t davfs https://your.remote/path /your/local/mount/point

หมายเหตุ: /your/local/mount/pointต้องเป็นไดเรกทอรีจริงที่มีอยู่เพื่อให้สามารถใช้งานได้

เท่าที่ฉันรู้คุณจะต้องเรียกใช้สิ่งต่อไปนี้เพื่อให้คำสั่งทำงาน: sudo apt-get install davfs2(หากต้องการการกำหนดค่าเพิ่มเติมฉันต้องขอโทษมันเป็นเวลานานแล้วที่ฉันทำสิ่งนี้)

(ฉันเพิ่มสิ่งนี้เป็นคำตอบเพราะฉันรู้สึกว่าคำตอบของเลียมไม่ได้ให้ข้อมูลเพียงพอ)


การใช้sudoเพื่อดาวน์โหลดไฟล์นั้นฟังดูไม่ถูกต้องนัก
Equidamoid

1
@Equidamoid การติดตั้งระบบไฟล์ต้องการการเข้าถึงรูทเพราะมันสามารถอนุญาตให้คุณข้ามการอนุญาต UNIX โลคัลในบางกรณี
Radon Rosborough
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.