18 คะแนน โดย GN⁺ 2025-03-13 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ใช้ WebRTC เพื่อตัดขั้นตอนการอัปโหลดเริ่มต้นออกไปซึ่งบริการแชร์ไฟล์บนเว็บอื่น ๆ มักต้องการ
  • เนื่องจากข้อมูลไม่ได้ถูกเก็บไว้บนเซิร์ฟเวอร์ตัวกลาง การโอนจึงรวดเร็ว เป็นส่วนตัว และปลอดภัย
  • อินสแตนซ์ที่โฮสต์ของ FilePizza ใช้งานได้ที่ file.pizza

ฟีเจอร์ใหม่ใน FilePizza v2

  • UI ใหม่และรองรับโหมดมืด สร้างขึ้นบนเทคโนโลยีเบราว์เซอร์สมัยใหม่
  • ใช้งานได้บนเบราว์เซอร์มือถือส่วนใหญ่ รวมถึง Mobile Safari
  • โอนโดยตรงจากฝั่งอัปโหลดไปยังเบราว์เซอร์ของผู้ดาวน์โหลด (WebRTC, ไม่มี WebTorrent) ทำให้จับมือเชื่อมต่อได้เร็วขึ้น
  • ฝั่งอัปโหลดสามารถติดตามความคืบหน้าของการโอนและหยุดได้
  • เสริมมาตรการด้านความปลอดภัยและความมั่นคงด้วยการป้องกันด้วยรหัสผ่านและฟังก์ชันการรายงาน
  • อัปโหลดหลายไฟล์พร้อมกันได้ และผู้ดาวน์โหลดจะได้รับเป็นไฟล์ zip
  • ดาวน์โหลดแบบสตรีมมิงผ่าน service worker
  • จัดเก็บสถานะเซิร์ฟเวอร์ในโปรเซสภายนอกด้วย Redis

เทคโนโลยีสแตกและการพัฒนา

  • Next.js, Tailwind, TypeScript, React, PeerJS (สำหรับ WebRTC), View Transitions, Redis (ไม่บังคับ)
  • สามารถโคลนซอร์สโค้ดจาก GitHub และติดตั้งรวมถึงรันด้วย pnpm
  • สามารถบิลด์และรัน FilePizza ด้วย Docker

FAQ

  • วิธีการโอนไฟล์: ไฟล์จะถูกโอนโดยตรงจากเบราว์เซอร์ของผู้อัปโหลดไปยังเบราว์เซอร์ของผู้ดาวน์โหลด ไม่ผ่านเซิร์ฟเวอร์ ใช้ WebRTC ในการโอนไฟล์ และผู้อัปโหลดต้องเปิดหน้าต่างเบราว์เซอร์ทิ้งไว้จนกว่าการโอนจะเสร็จสิ้น
  • ดาวน์โหลดพร้อมกันได้หรือไม่: ได้ เพียงส่ง URL แบบสั้นหรือแบบยาวก็ได้
  • ขนาดไฟล์สูงสุด: ใหญ่ได้เท่าที่เบราว์เซอร์รองรับ
  • หากปิดเบราว์เซอร์: URL ของไฟล์จะใช้งานไม่ได้อีกต่อไป หากดาวน์โหลดเสร็จแล้ว ผู้ดาวน์โหลดคนนั้นจะยังคงช่วย seed ให้กับผู้ที่ดาวน์โหลดยังไม่เสร็จ แต่จะไม่สามารถเริ่มการดาวน์โหลดใหม่ได้
  • มีการเข้ารหัสไฟล์หรือไม่: การสื่อสารผ่าน WebRTC ทั้งหมดจะถูกเข้ารหัสโดยอัตโนมัติผ่าน DTLS และสามารถเพิ่มรหัสผ่านให้การอัปโหลดเพื่อความปลอดภัยเพิ่มเติมได้

1 ความคิดเห็น

 
GN⁺ 2025-03-13
ความคิดเห็นบน Hacker News
  • ฉันเก็บรายชื่อเครื่องมือรับส่งไฟล์แบบ P2P ทั้งบนเบราว์เซอร์และแบบ CLI ไว้เป็นรายการยาว

    • ช่วงหลังมานี้ LimeWire กำลังเข้าซื้อเครื่องมือดี ๆ อย่าง ShareDrop และ SnapDrop
    • ตอนนี้ยังมี https://pairdrop.net/ เหลืออยู่
  • เบราว์เซอร์ Opera เคยมีฟีเจอร์รับส่งไฟล์แบบ P2P ชื่อ Unite อยู่ช่วงหนึ่งราวปี 2010

    • ใน GUI รูปทรงคล้าย "ตู้เย็น" ผู้ใช้สามารถฝากโน้ตสไตล์ post-it ไว้ได้
    • Opera Presto มีฟีเจอร์หลากหลาย ทั้งไคลเอนต์ Bittorrent, เดสก์ท็อปวิดเจ็ต, ไคลเอนต์ IRC, ไคลเอนต์อีเมล และการปรับแต่ง hotkey
    • ถึงอย่างนั้น เบราว์เซอร์ก็ยังเป็นไบนารีขนาดเบาอยู่ดี
  • สิ่งที่มักทำให้ฉันหงุดหงิดกับบริการพวกนี้คือการให้ URL ที่ซับซ้อน

    • https://file.pizza ดีกว่าเพราะ URL ประกอบด้วยคำที่อ่านรู้เรื่องจริง ๆ
    • ฉันชอบ https://pairdrop.net เพราะมันสร้าง "ห้อง" ชั่วคราว 5 ตัวอักษรที่แชร์ทางโทรศัพท์ได้ง่าย
    • ฉันกำลังรอบริการ P2P ที่เริ่มการเชื่อมต่อผ่าน CLI แล้วให้ URL แบบเรียบง่าย
  • อยากให้มีวิธีทำ local peer discovery ด้วย WebRTC

    • ตอนนี้ปลายทางทั้งสองฝั่งยังต้องมีการเชื่อมต่ออินเทอร์เน็ตที่ใช้งานได้และมีตัวระบุร่วมกัน
    • การแชร์ภายในเครือข่ายท้องถิ่นแบบออฟไลน์ยังทำไม่ได้
  • กังวลว่า ShareDrop กับ Snapdrop จะลงเอยแบบเดียวกับที่ถูก LimeWire เข้าซื้อ

  • ปัญหานี้ควรถูกแก้ได้ตั้งแต่หลายสิบปีก่อนแล้ว แต่โซลูชันที่แข็งแรง ปลอดภัย และไม่ใช่เชิงพาณิชย์ก็ยังไม่มีอยู่ดี

    • สงสัยว่าเดี๋ยวนี้โปรเจกต์ IPFS เป็นอย่างไรบ้าง
  • WebRTC ทำให้การรับส่งรวดเร็วและปลอดภัย เพราะข้อมูลไม่ถูกเก็บไว้บนเซิร์ฟเวอร์ตัวกลาง

    • แต่การรับส่งระหว่างไคลเอนต์ที่อยู่หลัง NAT จำเป็นต้องใช้เซิร์ฟเวอร์ TURN
    • ข้อมูลอาจไม่ถูกเก็บไว้บนเซิร์ฟเวอร์ตัวกลาง แต่สามารถวิ่งผ่านมันได้
    • สงสัยว่ามีอะไรรับประกันได้ไหมว่าเซิร์ฟเวอร์ TURN จะไม่อ่านข้อความ
    • และก็สงสัยด้วยว่ามีการใช้ E2EE หรือไม่
  • ถ้าไม่ได้มีปัญหากับการติดตั้ง Transmission หรือไคลเอนต์ทอร์เรนต์ตัวอื่น ฉันจะชอบแนวทาง privtracker มากกว่า

    • ไคลเอนต์ทอร์เรนต์ส่วนใหญ่สามารถรันอยู่เบื้องหลังได้ตามปกติ
    • ถ้าช่วงหลังมันได้รับความสนใจแต่คุณพลาดไป ก็น่าเสียดาย
  • ฉันชอบ PairDrop มากจริง ๆ

  • ยังมี Magic Wormhole ด้วย และมันไม่ใช่แบบทำงานบนเบราว์เซอร์