Bare bones HTTP server สำหรับ linux พร้อมการดาวน์โหลดไฟล์ที่ทำงานต่อได้


5

ฉันมีผู้ใช้ Windows ที่ฉันต้องการแชร์ไฟล์ขนาดใหญ่ด้วยพวกเขามี Firefox พร้อมฉันเข้าใจรองรับการดาวน์โหลดไฟล์ HTTP ที่ทำงานต่อได้และฉันมี Ubuntu Linux แต่มีพื้นที่ดิสก์ที่ จำกัด และเช่นนั้นฉันจึงไม่ต้องการโซลูชันที่เต็มเปี่ยม เว็บเซิร์ฟเวอร์ของ Apache

ฉันต้องการเรียกใช้เซิร์ฟเวอร์ผ่านบรรทัดคำสั่งหรือ GUI เมื่อฉันต้องการไม่ใช่บูต

หากฉันสามารถหลีกเลี่ยงได้ฉันไม่ต้องการแก้ไขไฟล์กำหนดค่า - ฉันแค่ต้องการให้อาร์กิวเมนต์บรรทัดคำสั่งสำหรับพอร์ตของมันฉันใช้ python -m SimpleHTTPServer - แต่ฉันไม่คิดว่ามันจะเป็น กลับมาทำงานต่อ


"แชร์ ... ไฟล์" - ดังนั้น ... คุณต้องการถ่ายโอนไฟล์ใช่มั้ยและคุณไม่ต้องการใช้ FILE TRANSFER PROTOCOL ทำไม?
ta.speot.is

2
ฉันไม่คิดว่าชื่อ ism มีประโยชน์ที่นี่ไม่มีอะไรผิดปกติกับการต้องการใช้เบราว์เซอร์เพื่อดาวน์โหลดไฟล์โดยเฉพาะอย่างยิ่งเนื่องจากผู้ใช้มีความสะดวกสบายกับมัน ไม่เห็นว่าควรซับซ้อนหรือมีปัญหาเกี่ยวกับการเรียกใช้เซิร์ฟเวอร์ HTTP ที่ทำงานต่อได้หรือไม่?
ลุคสแตนลีย์

ฉันมีคำตอบบางส่วนฉันสามารถโพสต์ใน ~ 6 ชั่วโมง (ตัวแทน <100): pastebin.com/DS0wedwk
ลุคสแตนลีย์

@ todda.speot.is: อาจเป็นเพราะ FTP ไม่ปลอดภัยและส่งรหัสผ่านข้ามเครือข่าย
n0pe

2
ส่วนใหญ่เป็นเพราะความเรียบง่ายสำหรับผู้ใช้คือราชา
ลุคสแตนลีย์

คำตอบ:


11

ใช้thttpd

thttpd -d /home/bob/sharedfolder -p 8080

ไดเรกทอรีจะกลายเป็นสามารถเข้าถึงได้ที่/home/bob/sharedfolderhttp://address:8080

สกรีนช็อตของรายชื่อไดเรกทอรี thttpd ใน Chrome แสดง localhost บนพอร์ต 8080


lighttpdสามารถใช้ในวิธีที่คล้ายกันแม้ว่าจะต้องใช้ไฟล์ปรับแต่งขนาดเล็ก ตัวอย่างเช่น:

server.document-root = "/home/bob/sharedfolder"
server.port          = 8080
dir-listing.activate = "enable"

ซึ่งวิ่งแบบนี้แล้ว:

lighttpd -f foo.conf

ขอบคุณ grawity ฉันได้ทำการแก้ไขบางอย่าง จะขอบคุณบาง upvotes คำถาม
ลุคสแตนลีย์

แม้python -m SimpleHTTPServer 8000ควรจะเพียงพอ ... :)
akira

@akira: SimpleHTTPServerไม่รองรับช่วงไบต์หมายความว่าจะไม่สามารถทำการถ่ายโอนต่อได้ ทดสอบกับcurl http://localhost:8000/testfile -o /dev/null -C 100ตัวอย่างเช่น
grawity

ตรงนี้เป็นสิ่งที่ฉันต้องการใช้ lighttpd ตอนนี้และมันใช้งานได้ดี
Rob

@grawity: จริง แต่นั่น: อาจเป็นตัวเลือกที่ทำงานได้ ช่วงที่ขาดหายไป: นั่นเป็นเหตุผลว่าทำไมฉันจึงใส่เฉพาะคำตอบของคุณและไม่ใช่คำตอบแบบสแตนด์อโลน
กิระ

3

ฉันเพิ่งสร้างโมดูลหลามext_http_serverที่ขยายฟังก์ชันการทำงานของSimpleHTTPServerโมดูล หนึ่งในคุณสมบัติของมันคือการดาวน์โหลดไฟล์ต่อไปได้นอกเหนือจาก https, การรับรองความถูกต้องและการ จำกัด อัตรา

นี่คือลิงค์โดยตรงไปยังคำแนะนำในการติดตั้งและการใช้งาน

ฉันควรระบุว่า lighttpd มีฟังก์ชั่นเดียวกันทั้งหมดดังนั้นหากคุณกำลังมองหาบางสิ่งบางอย่างพร้อมกับการผลิต lighttpd ext_http_serverหากคุณกำลังมองหาบางสิ่งบางอย่างที่ใช้ในหลามที่คุณสามารถสร้างเมื่อตรวจสอบ


ฟังดูดี!
ลุคสแตนลีย์

จริง ๆ แล้วฉันใช้สิ่งนี้ แต่ฉันไม่ต้องการให้มีการ จำกัด อัตรา, https หรือผู้ใช้ / รหัสผ่าน, ดังนั้นจึงเป็นคำสั่งที่ใช้สำหรับสิ่งที่ฉันต้องการ: ext_http_server --cert /home/luke/Downloads/cert.pem -d -p 9191 -a test: test -r 999999999999999
Luke Stanley

ค่าเริ่มต้นที่สามารถใช้งานได้ในแพ็คเกจที่สร้างขึ้นนั้นมีไว้เพื่อให้มีคุณสมบัติทั้งหมดเหล่านั้น ด้วยการทำงานเพียงเล็กน้อยคุณสามารถสร้างไฟล์สั่งการ (สคริปต์) ของคุณเองที่มีเฉพาะการดาวน์โหลดที่ทำงานต่อได้ อย่างไรก็ตามในกรณีนั้นอาจจะเร็วกว่าการใช้ thttpd หรือ lighttpd
bboe

ใช่มันอาจคุ้มค่าที่จะพิจารณาโหมดง่าย ๆ หรือโหมดง่าย ๆ เป็นค่าเริ่มต้น แม้ว่าการทำงานที่ดีแน่นอน
ลุคสแตนลีย์

1

ใช้Lighttpd - คุณใช้ Linux ดังนั้นฉันเดาว่าคุณคุ้นเคยกับการเจาะ! วางไฟล์ที่คุณต้องการแชร์ในโฟลเดอร์ / var / www แก้ไขไฟล์ init.d conf เพื่อลบLighttpdจาก bootup daemons

Lighttpd ทำทุกสิ่งที่คุณต้องการและมากขึ้น - และไม่เล็กมันเล็กมาก! ;)


ใช่ฉันใช้ Monkey อยู่แล้ว อาจแตกต่างกันโดยพลการ ดู: pastebin.com/DS0wedwk แต่ฉันกำลังมองหาวิธีการแก้ปัญหาการตั้งค่าไฟล์ 0 ถ้าเป็นไปได้ :)
ลุคสแตนเลย์

ดูเหมือนว่า lighttpd จะไม่รองรับช่วงไบต์หากฉันดาวน์โหลดไฟล์ที่มี curl ฉันจะได้รับ: เซิร์ฟเวอร์ HTTP ดูเหมือนจะไม่รองรับช่วงไบต์
Zibri
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.