ต้องการคำแนะนำสั้นๆ หรือไม่? เพียงดูวิดีโอด้านบน!
เมื่อปีที่แล้ว ฉันได้เปิดตัวยูทิลิตี้ที่เรียกว่า เซิร์ฟเวอร์ไฟล์ Pafera เป็นแอปคอนโซลที่เขียนด้วย Rust ซึ่งใช้ตัวจัดการไฟล์บนเว็บสำหรับอุปกรณ์ของคุณ ช่วยให้แชร์ไฟล์ได้อย่างง่ายดายกับอุปกรณ์ใดก็ได้ที่มีเว็บเบราว์เซอร์พร้อมฟีเจอร์สไลด์โชว์ที่สะดวกเพื่อแสดงรูปภาพและไอคอนชิบะของคุณ ซึ่งหมายความว่าคุณสามารถไปงานปาร์ตี้และให้เพื่อน 200 คนดูรูปภาพวันหยุดล่าสุดของคุณในโทรศัพท์ของพวกเขาเอง ในเวลาและจังหวะของพวกเขาเอง
หลังจากนั้น เมื่อมีคำแนะนำและรูปแบบการใช้งานต่างๆ เข้ามาจากเพื่อนและคนแปลกหน้าบนอินเทอร์เน็ต ฉันก็เริ่มเพิ่มคุณสมบัติต่างๆ มากขึ้นเรื่อยๆ ตอนนี้มันสามารถทำ rsync ต้นไม้ไดเรกทอรีทั้งหมด ทรานส์โค้ดไฟล์มีเดีย เปิดไฟล์ด้วยแอพระบบปฏิบัติการดั้งเดิม และซิงค์ไฟล์ระหว่างอุปกรณ์ของคุณโดยอัตโนมัติ
อย่างไรก็ตาม เนื่องจากเป็นแอปคอนโซล จึงมีปัญหาใหญ่ประการหนึ่งที่ทำให้แอปนี้ไม่สามารถเป็นโซลูชันสากลสำหรับอุปกรณ์ทั้งหมดของคุณได้:
แอปคอนโซลไม่สามารถทำงานบน iOS ได้ ซึ่งหมายความว่าคุณไม่สามารถรัน Pafera File Server บน iPhone หรือ iPad ได้...
จนกระทั่งถึงปัจจุบันนี้.
ฉันมีเวลาว่างช่วงวันหยุดคริสต์มาสขณะที่มอนเตเนโกรกำลังฉลองวันหยุด ฉันจึงทดลองเขียนแอปพลิเคชันเสริมสำหรับหลายแพลตฟอร์มใน Flutter/Dart ที่จะช่วยให้คุณสามารถเรียกดูเซิร์ฟเวอร์จากโทรศัพท์ได้อย่างง่ายดาย วิธีนี้จะช่วยให้เพื่อนของฉันที่ไม่ค่อยมีความรู้ด้านเทคโนโลยีสามารถกดปุ่มสองปุ่มและเชื่อมต่อกับเซิร์ฟเวอร์ของฉันได้
ระหว่างทาง ฉันคิดได้ว่าคุณสามารถใช้ Dart ในการรันเซิร์ฟเวอร์เว็บของคุณเองบนอุปกรณ์ iOS ได้ และฉันก็คิดว่า...
เฮ้! ทำไมฉันไม่ติดตั้งเซิร์ฟเวอร์ไฟล์ใน Dart แทนล่ะ!
สองสัปดาห์ต่อมา แอปนี้ก็มาถึงแล้ว
ขณะนี้ประสิทธิภาพการทำงานนั้นช้ามากเมื่อเทียบกับเวอร์ชัน Rust เซิร์ฟเวอร์ Rust สามารถให้บริการคำขอได้ประมาณ 40,000 รายการต่อวินาที...
ขณะที่เวอร์ชัน Dart สามารถเสิร์ฟได้เพียงประมาณ 400....
แต่ที่สำคัญคือมันได้ผล...
และติดตั้งบน iPhone ได้!
เนื่องมาจากข้อบกพร่องในไลบรารี PDFx ใน Flutter เวอร์ชันล่าสุด ฉันจึงต้องหยุดใช้ไอคอนสวยๆ สำหรับปุ่มทั้งหมด เนื่องจากปุ่มเหล่านั้นแสดงเป็นเส้นสีดำที่น่าเกลียด
อย่างไรก็ตามการดำเนินการพื้นฐานยังคงเหมือนเดิม
เมื่อทุกคนเชื่อมต่อกับเครือข่าย WiFi เดียวกันหรือฮอตสปอตของโทรศัพท์ของคุณแล้ว เพียงคลิกที่ไอคอนแอป เลือกโฟลเดอร์ที่คุณต้องการแชร์ และแตะ "เริ่มเซิร์ฟเวอร์"
จากนั้นคลิกที่ปุ่มรหัส QR ให้เพื่อนของคุณสแกน จากนั้นพวกเขาก็สามารถค้นหาโฟลเดอร์ของคุณบนโทรศัพท์ของพวกเขาได้อย่างสบายใจ แม้กระทั่งสตรีมภาพยนตร์จากโทรศัพท์ของคุณไปยังโทรศัพท์ของพวกเขาโดยตรง
หากเพื่อนของคุณใช้แล็ปท็อปหรือคอมพิวเตอร์เดสก์ท็อปก็ไม่มีปัญหา เพียงพิมพ์ URL ที่แสดงเหนือรหัส QR บนอุปกรณ์ของพวกเขา แล้วพวกเขาก็สามารถทำสิ่งเดียวกันได้
หากคุณไม่ได้ใช้งานบน iOS หรือ Android ก็ไม่มีปัญหาเช่นกัน แอป Flutter ใช้งานได้บน OSX, Windows และ Linux ได้ดี ดังนั้นคุณจะได้รับฟังก์ชันการทำงานเดียวกันและมากกว่านั้นหากคุณติดตั้ง rsync, FFMpeg และ ImageMagick ในระบบของคุณเพื่อให้แอปใช้งานได้
นอกเหนือจากการแชร์ไฟล์แบบง่าย ๆ แล้วยังมีคุณสมบัติขั้นสูงอีกมากมาย ดังนั้น ฉันจะสรุปแบบสั้น ๆ ไว้ที่นี่
ชื่อโฮสต์คือสิ่งที่แสดงให้อุปกรณ์อื่นเห็นเมื่อคลิก "ค้นหาเซิร์ฟเวอร์อื่น" คุณสามารถใช้ชื่อโฮสต์เพื่อแยกแยะอุปกรณ์หนึ่งจากอีกอุปกรณ์หนึ่งได้อย่างรวดเร็วหากคุณแชร์อุปกรณ์หลายเครื่องพร้อมกัน
โฟลเดอร์คือโฟลเดอร์ระบบไฟล์ที่คุณกำลังแชร์อยู่ คุณสามารถคลิก "ใช้โฟลเดอร์เอกสาร" เป็นค่าเริ่มต้นใน Documents/shared หรือคุณสามารถคลิก "เลือกโฟลเดอร์" เพื่อเลือกโฟลเดอร์อื่น คุณอาจต้องคลิก "ใช้โฟลเดอร์เอกสาร" หาก iOS ไม่รีเฟรชการตั้งค่าแอปอย่างถูกต้องเมื่อเปิดแอปขึ้นมาใหม่จากโหมดสลีป
การใช้ IP ปัจจุบันจะตรวจจับ IP WiFi ปัจจุบันของอุปกรณ์ของคุณโดยอัตโนมัติ เช่นเดียวกับ "ใช้โฟลเดอร์เอกสาร" ให้ใช้หาก iOS ไม่รีเฟรชแอปอย่างถูกต้องและยังคงใช้ IP จากเครือข่าย WiFi ก่อนหน้า
"แชร์บนอินเทอร์เฟซทั้งหมด" จะตั้งค่า IP สาธารณะเป็น 0.0.0.0 ซึ่งหมายความว่า ทุกคน บนอุปกรณ์ใดก็ตามที่คุณเชื่อมต่ออยู่ จะสามารถเห็นเซิร์ฟเวอร์ของคุณได้ มีประโยชน์สำหรับเดสก์ท็อปที่มีการเชื่อมต่อมากกว่าหนึ่งจุด แต่ต้องระมัดระวังในการใช้งานในที่สาธารณะ
“เริ่มการแชร์” จะเริ่มการทำงานของเซิร์ฟเวอร์และเปิดโฮมเพจเพื่อให้คุณจัดการ การคลิกอีกครั้งจะทำให้เซิร์ฟเวอร์หยุดทำงานและรักษาไฟล์ของคุณให้ปลอดภัย
“โหลดการตั้งค่าล่าสุด” และ “บันทึกการตั้งค่าปัจจุบัน” จะทำงานตามที่บอกทุกประการ การตั้งค่าของคุณจะถูกเก็บไว้ใน Documents/paferafileserver.cfg เช่นเดียวกับคอนโซลเวอร์ชัน Rust
ตัวเลือกรหัสผ่านต่างๆ มีไว้เพื่อให้แต่ละบุคคลมีระดับการเข้าถึงที่แตกต่างกัน
โดยปกติทุกคนจะสามารถเห็นไฟล์ของคุณได้เพียงแค่เชื่อมต่อกับเซิร์ฟเวอร์ของคุณ แต่หากคุณทำเครื่องหมายที่ "เปิดใช้งานไฟล์ส่วนตัว" ด้านล่างนี้ จะไม่มีใครสามารถดูไฟล์ของคุณได้หากไม่มีรหัสผ่านในการอ่าน
รหัสผ่านการเขียนใช้สำหรับอัปโหลด ย้าย คัดลอก หรือลบไฟล์ หากไม่มีรหัสผ่านนี้ บุคคลอื่นจะไม่สามารถทำอะไรกับระบบของคุณได้นอกจากดูไฟล์ของคุณ
รหัสผ่านเชลล์ไม่มีประโยชน์บนแอปมือถือ แต่มีประโยชน์มากบนระบบปฏิบัติการเดสก์ท็อปและ Termux บน Android ช่วยให้คุณเรียกใช้คำสั่งระบบตามอำเภอใจ ซึ่งทำให้มีประสิทธิภาพและอันตรายในเวลาเดียวกัน ฟีเจอร์นี้ถูกปิดใช้งานตามค่าเริ่มต้น และคุณต้องป้อนรหัสผ่านเชลล์ทั้งคู่ และ ทำเครื่องหมายที่ "เปิดใช้งานคำสั่งเชลล์" ด้านล่างเพื่อใช้งาน
ตัวเลือกเปิดและปิดต่างๆ ช่วยให้คุณเลือกได้ว่าผู้อื่นจะทำอะไรกับระบบของคุณได้ แม้ว่าเมื่อ พวกเขามีรหัสผ่านที่ถูกต้องแล้ว ตัวเลือกเหล่านี้จะแทนที่ตัวเลือกอื่นๆ ทั้งหมด ดังนั้นหากคุณปิดใช้งานการคัดลอกไฟล์ ไม่มีใคร - แม้แต่ตัวคุณเอง - จะสามารถคัดลอกไฟล์ได้
ตัวเลือกพิเศษ "ปิดใช้งานการตรวจสอบคีย์ SSH" เหมาะสำหรับคนอย่างฉันที่มักจะวนเวียนไปมาขณะซิงค์ไฟล์ไปมาระหว่างอุปกรณ์ต่างๆ โดยปกติแล้ว SSH จะขอให้ยืนยันเมื่อเชื่อมต่อกับระบบที่มีการเปลี่ยนที่อยู่ IP แม้ว่าจะทราบตัวตนของระบบนั้นแล้วก็ตาม ตัวเลือกนี้จะช่วยให้คุณซิงค์ไฟล์บนเครือข่ายต่างๆ โดยอัตโนมัติโดยไม่ต้องไปที่คอนโซลเพื่อยืนยันการเชื่อมต่อ SSH ใช้ด้วยความระมัดระวังเมื่ออยู่บนเครือข่ายที่คุณไม่สามารถควบคุมได้ด้วยตนเอง
ต่างจากการทำงานใน Termux หรือสภาพแวดล้อมเดสก์ท็อป แอป iOS และ Android ไม่มีการเข้าถึงเชลล์ rsync, ImageMagick หรือ FFMpeg ดังนั้นคุณสมบัติการซิงค์และการแปลงโค้ดขั้นสูงทั้งหมดจึงถูกปิดการใช้งาน
เนื่องจากระบบปฏิบัติการบนมือถือสามารถปิดแอปพื้นหลังได้ตลอดเวลา จึงทำให้ไม่สามารถปิดการทำงานอัตโนมัติแบบกำหนดเวลาได้ด้วย
มีแนวทางแก้ไขที่เป็นไปได้สำหรับทุกประเด็นเหล่านี้ แต่เวลาที่จำเป็นในการรวมฟีเจอร์เหล่านี้เข้าด้วยกันนั้นเกินความตั้งใจของฉันในขณะนี้ หากมีใครสนใจที่จะจ่ายเงินให้ฉันเพื่อเพิ่มฟีเจอร์เหล่านี้ เราก็จะรอดูว่าจะเกิดอะไรขึ้น 😁
เช่นเดียวกับโครงการทั้งหมดของฉัน ซอร์สโค้ดจะโฮสต์อยู่บน Codeberg และสามารถใช้ได้ พบได้ที่นี่ .
สำหรับไฟล์ไบนารีที่คอมไพล์ไว้ล่วงหน้า คุณอาจจะ เรียกดูไดเรกทอรีการเผยแพร่ที่นี่ ...
หรือเพียงคลิกที่ลิงค์ด้านล่าง:
เนื่องจากข้อกำหนดการลงนามของ Apple ผู้ใช้ iOS และ OSX ต้องรอให้แอปพร้อมใช้งานบน App Store หรือดาวน์โหลดโค้ดต้นฉบับและคอมไพล์เวอร์ชันของคุณเองสำหรับอุปกรณ์ของคุณ
เนื่องจากเป็นเวอร์ชันใหม่ ฉันจึงมั่นใจว่าจะมีข้อบกพร่องและพฤติกรรมแปลกๆ มากมายในระบบต่างๆ หากคุณต้องการทดสอบเบต้าแอปนี้ให้ฉัน โปรดส่งอีเมลถึงฉันพร้อมระบุอุปกรณ์และเวอร์ชันระบบปฏิบัติการของคุณ แล้วฉันจะตั้งค่า TestFlight ให้คุณ
การแจกจ่ายแอป Flutter นั้นซับซ้อนกว่าเวอร์ชัน Rust มาก ซึ่งฉันเพียงแค่อัปโหลดไฟล์ปฏิบัติการเพียงไฟล์เดียวและจัดการทุกอย่างให้เสร็จสิ้น ดังนั้นโปรดเข้าใจว่า Apple ต้องใช้เวลาสามสัปดาห์ในการตรวจสอบแอปของฉันและอนุญาตให้เข้าสู่ iOS App Store สิ่งต่างๆ น่าจะง่ายขึ้นมากเมื่อ Apple จำเป็นต้องอนุญาตแอปของบุคคลที่สามตามกฎของสหภาพยุโรป
ฉันหวังว่าพวกคุณจะพบว่าแอปนี้มีประโยชน์เหมือนเช่นเคย และหากคุณต้องการปรับแต่งแอปนี้เพื่อวัตถุประสงค์ของคุณเอง ฉันพร้อมเสมอที่จะเป็นที่ปรึกษาทางเทคนิค สนุกให้เต็มที่!
เกี่ยวกับผู้เขียน |
|
![]() |
จิมเริ่มเขียนโปรแกรมมาตั้งแต่ที่เขาได้รับ IBM PS/2 เมื่อช่วงยุค 90 จนถึงทุกวันนี้ เขายังคงชอบเขียน HTML และ SQL ด้วยมือ และมุ่งเน้นที่ประสิทธิภาพและความถูกต้องในการทำงานของเขา |