HTTP หรือ FTP Server น้ำหนักเบาใดที่เหมาะสำหรับการถ่ายโอนไฟล์แบบง่าย [ปิด]


25

คำถามนี้เป็นคำถามที่ตามมาถึงวิธีการคัดลอกไฟล์ไปยังคอมพิวเตอร์ที่ไม่น่าเชื่อถือ เนื่องจากดูเหมือนจะไม่มีแอพเฉพาะสำหรับวัตถุประสงค์นี้ตอนนี้ฉันกำลังค้นหาเซิร์ฟเวอร์ http หรือ ftp เป็นทางเลือก โดยเฉพาะอย่างยิ่งฉันกำลังค้นหาเซิร์ฟเวอร์ที่มีน้ำหนักเบาซึ่งสามารถใช้สำหรับการถ่ายโอนไฟล์แบบครั้งเดียวง่าย ๆ ระหว่างคอมพิวเตอร์ โดยที่ฉันหมายความว่ามันควรจะทำหน้าที่แทน rsync / scp เพื่อรับไฟล์จากคอมพิวเตอร์เครื่องหนึ่งไปยังอีกเครื่องหนึ่งไม่ใช่เว็บเซิร์ฟเวอร์แบบดั้งเดิม นอกจากนี้ควร:

  • ทำงานใน userspace
  • เล็กน้อยเพื่อกำหนดค่า (เช่นไม่มีไฟล์กำหนดค่าทุกอย่างทำได้ผ่านทางบรรทัดคำสั่ง)
  • สนับสนุนชื่อผู้ใช้ / รหัสผ่าน
  • สนับสนุนการดาวน์โหลดอย่างต่อเนื่อง
  • รองรับการส่งออกไฟล์เดียวแทนทั้งไดเรกทอรี

คำตอบของ dbr สำหรับคำถามก่อนหน้านี้เข้ามาใกล้ แต่ก็เป็นเพียงแฮ็คเฉพาะกิจที่ขาดคุณสมบัติที่มีประโยชน์มากมาย


เพียงใช้ Apache2 มันเร็วกว่า python SimpleHTTPServer ประมาณ 4x
o0omycomputero0o

คำตอบ:


31

ฉันมักจะใช้ Python แฮ็คด่วนนี้เพื่อให้บริการไดเรกทอรีผ่าน HTTP

python -m SimpleHTTPServer &

จะให้บริการไดเรกทอรีปัจจุบัน

โดยค่าเริ่มต้นมันผูกกับพอร์ต 8000

วิธีเลือกพอร์ตอื่น:

python -m SimpleHTTPServer 9090 &

หากคุณเลือกพอร์ตที่ต่ำกว่า 1024 ใน * ระวังคุณอาจต้องใช้สิทธิ์พิเศษมิฉะนั้นการโยง () จะล้มเหลว


3
ไม่แน่ใจจริงๆว่าทำไมปิดคำถามนี้ ทั้งคำถามและคำตอบนั้นมีประโยชน์มาก
merlin2011

8
หรือ Python 3 ที่เทียบเท่า:python3 -m http.server
Eliran Malka

6

บางคนบน SO ชี้ให้ฉันที่โฮ่ง httpd น้อยที่สุดในหลามกับอินเทอร์เฟซที่ปรับให้เหมาะสำหรับการใช้งาน ไม่ตรงตามความต้องการของคุณทั้งหมด แต่ด้วยการอนุญาตให้คุณระบุจำนวนครั้งที่มันจะเชื่อมต่อมันช่วยให้คุณใช้ "คุณพร้อมหรือยัง? ฉันกำลังเริ่มเซิร์ฟเวอร์ตอนนี้" วิธีการในการรักษาความปลอดภัยการถ่ายโอน

เพื่ออนุญาตให้ดาวน์โหลดหนึ่งการเชื่อมต่อ (1) thisfileพอร์ตบน 8080 คุณเพียงแค่เรียกใช้

$ woof thisfile

มันง่ายมาก

นี่คือเดิมค่อนข้างที่ถูกทารุณกรรม ถ้าคุณชอบมันไปลงคะแนนให้เนท


นอกจากนี้ยังใช้งานได้ดีสำหรับ "อัปโหลด" (ในกรณีที่คุณต้องการไฟล์จากผู้ใช้ที่ไม่สามารถหรือจะไม่ติดตั้งเซิร์ฟเวอร์ตัวเอง)
golimar

3

คุณสามารถลองwebfsซึ่งมีอยู่ในที่เก็บ Ubuntu:

Webfs (aka webfsd) เป็นเซิร์ฟเวอร์ HTTP อย่างง่ายสำหรับเนื้อหาแบบสแตติก คุณสามารถใช้มันเพื่อให้บริการเนื้อหาของเซิร์ฟเวอร์ FTP ผ่าน HTTP เช่น นอกจากนี้ยังสามารถใช้เพื่อส่งออกไฟล์บางอย่างได้อย่างรวดเร็วโดยเริ่มต้นเซิร์ฟเวอร์ httpd ในไม่กี่วินาทีโดยไม่ต้องแก้ไขไฟล์กำหนดค่าก่อน

ตัวเลือกหนึ่งคือHFS (HTTP Server File) , แอป Windows ที่ทำงานได้ดีผ่านไวน์

HFS (Http File Server) เป็นซอฟต์แวร์แชร์ไฟล์ที่อนุญาตให้คุณส่งและรับไฟล์ คุณสามารถ จำกัด การแบ่งปันนี้ให้เพื่อนเพียงไม่กี่คนหรือเปิดให้คนทั้งโลก HFS นั้นแตกต่างจากการแชร์ไฟล์แบบคลาสสิกเนื่องจากไม่มีเครือข่าย [... ] เนื่องจากเป็นเว็บเซิร์ฟเวอร์จริง ๆ เพื่อนของคุณสามารถดาวน์โหลดไฟล์ราวกับว่าพวกเขากำลังดาวน์โหลดจากเว็บไซต์โดยใช้เว็บเบราว์เซอร์


1
เกิดอะไรขึ้นกับโหวตลงที่นี่? OP ขอเซิร์ฟเวอร์ http ง่ายๆและผู้คนได้ให้พวกเขา ดังนั้นปัญหาคืออะไร
dmckee

HFS ยังใช้งานได้ดีสำหรับ "อัปโหลด" (ในกรณีที่คุณต้องการไฟล์จากผู้ใช้ที่ไม่สามารถหรือจะไม่ติดตั้งเซิร์ฟเวอร์ตัวเอง)
golimar

1

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

ฉันขอแนะนำให้คุณติดตั้งเซิร์ฟเวอร์ FTP ได้ไหม

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


1
แน่นอนว่า FTP นั้นก็ใช้ได้เช่นกัน แต่เซิร์ฟเวอร์ FTP ส่วนใหญ่ที่ฉันรู้จักนั้นไม่เบาและมาพร้อมกับสัมภาระที่น่าเกลียดมากมายที่ทำให้พวกเขาไม่เหมาะสำหรับการถ่ายโอนไฟล์แบบครั้งเดียวง่าย ๆ (เช่นต้องการสิทธิ์รูทบัญชีในเครื่องสำหรับการเข้าถึงรหัสผ่าน การจัดการไดเรกทอรีที่ไม่ยืดหยุ่น ฯลฯ ) ด้วย Pure-FTPd ฉันไม่สามารถรู้ได้ว่าจะเริ่มต้นอย่างไรในฐานะผู้ใช้ที่ไม่ใช่รูท
Grumbel

1
ตกลง มันเรียกว่า File Transfer Protocol ด้วยเหตุผล HTTP ในทางกลับกันก็คือ HyperText Transfer Protocol โอกาสที่คุณจะไม่สนใจ HyperText ในตอนนี้
Lee B

1
FTP ไม่ใช่ความคิดที่งี่เง่า แต่คุณมีคำแนะนำสำหรับสิ่งที่ง่ายต่อการตั้งค่าตามที่ OP ร้องขอหรือไม่
dmckee

1
ข้อดีของ http คือคอมพิวเตอร์แต่ละเครื่องที่ใช้งานทั่วไปมีเว็บเบราว์เซอร์อยู่และผู้ใช้จะใช้งานได้อย่างสะดวกสบาย ตกลงก็รองรับ ftp ด้วยเช่นกัน แต่ถ้าคุณจะใช้เว็บเบราว์เซอร์ต่อไป ...
dmckee

2
แม้ว่าเราจะไม่พูดถึงเซิร์ฟเวอร์เอนกประสงค์เช่น Apache ที่นี่ เรากำลังพูดถึงเครื่องมือพิเศษและเครื่องมือขั้นต่ำ โฮ่งทำให้ chttpd ดูหนัก
dmckee

0

ฉันขอแนะนำhttp://code.google.com/p/pyftpdlib/ ได้ไหม
มันเบาดาวน์โหลดแหล่งและเขียนสคริปต์ Python (เพียงคัดลอกส่วนเริ่มต้นอย่างรวดเร็วในหน้าแรกก็พอ 5-6 บรรทัดตั้งชื่อผู้ใช้และรหัสผ่านไดเรกทอรีบ้าน ฯลฯ )
ฉันใช้เพื่อส่วนบุคคล pc to pc การถ่ายโอนไฟล์ (บน Ubuntu Hardy) ปัญหาหนึ่งที่ทราบ (และฉันสามารถทนกับ) คือมันไม่สามารถจัดการ Unicode (ไม่ใช่ ASCII) ได้ดี


0

thttpdคำตอบง่ายๆคือ: มันชนะประสิทธิภาพการใช้งานหน่วยความจำและความปลอดภัย และโดยการรักษาความปลอดภัยฉันหมายความว่ามันปลอดภัยโดยอาศัยอำนาจของการออกแบบและไม่ทำอะไรที่โง่ไม่ว่ามันจะมี "ความปลอดภัย" ระฆังและเสียงนกหวีด นอกจากนี้ยังใกล้เคียงกับขนาดและความเรียบง่าย

หากคุณต้องการขนาดเล็กและเรียบง่าย BusyBox มีhttpdแอปเพล็ตที่อาจตอบสนองความต้องการของคุณ

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

(ฉันรู้ว่าคำถามนี้เก่า แต่เป็นผลลัพธ์อันดับต้น ๆ ของ Google และคำตอบที่มีอยู่คืออะไร แต่มีน้ำหนักเบา)


2
thttpdเคยเป็นคำตอบที่ฉันโปรดปรานเช่นกัน แต่มันถูกลบออกจาก Debian, Ubuntu และ RedHat ในปี 2011 เพราะมันเป็น "เด็กกำพร้ามีข้อบกพร่องที่สำคัญในการเผยแพร่และเป็นอัปสตรีมตาย" ฉันจะไม่แนะนำอีกต่อไป
poolie

0

คุณยังสามารถลอง HFS หรือที่เรียกว่า HTTP File Server ( http://www.rejetto.com/hfs/ ) ในขณะที่มันเป็นแอปพลิเคชั่น windows มันก็บอกว่าทำงานได้ดีโดยใช้ WINE การบำรุงรักษาต่ำมากและแม้แต่ผู้เริ่มต้นที่สมบูรณ์ซึ่งไม่ทราบว่าไฟล์เซิร์ฟเวอร์คืออะไรจะสามารถใช้งานได้โดยไม่ต้องใช้ความพยายามมากนัก รองรับการลากและวางฟังก์ชั่นและคุณสามารถควบคุมได้ว่าที่อยู่ IP ใดที่สามารถเข้าถึงไฟล์และรองรับบัญชีผู้ใช้และการควบคุมความเร็วในการดาวน์โหลด


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