從 iPhone 輕鬆分享檔案的新方法

Pafera 檔案伺服器現已在 iOS 上提供!
2024-01-20 16:39:38
👁️ 1037
💬 0

想要快速介紹嗎?只需觀看上面的影片即可!

內容

  1. 介紹
  2. 新的 Flutter 檔案共享應用程式
  3. 使用應用程式
  4. 進階功能
  5. 行動裝置上的停用功能
  6. 下載和原始碼
  7. 申請成為 Beta 測試員

介紹

在 Android Termux 中運行的 Pafera 檔案伺服器

去年,我發布了一個名為 帕費拉檔案伺服器 。它是一個用Rust 編寫的控制台應用程序,可為您的設備運行基於Web 的文件管理器,允許輕鬆地將文件共享到具有Web 瀏覽器的任何設備,並具有方便的幻燈片放映功能來展示您的照片和shiba 圖示。這意味著您可以去參加一個聚會,讓 200 位朋友都按照自己的時間和步調在自己的手機上瀏覽您最近的度假照片。

後來,隨著來自朋友和隨機的網路陌生人的各種建議和使用模式,我開始添加越來越多的功能。現在它能夠同步整個目錄樹、轉碼媒體檔案、使用本機作業系統應用程式開啟檔案以及在裝置之間自動同步檔案。

然而,作為一款控制台應用程序,始終存在一個大問題,使其無法成為所有設備的通用解決方案:

控制台應用程式無法在 iOS 上運行,這意味著您無法在 iPhone 或 iPad 上運行 Pafera 檔案伺服器...

到目前為止。

新的 Flutter 檔案共享應用程式

我在聖誕假期期間有一些空閒時間,而黑山正在慶祝假期,因此我嘗試在 Flutter/Dart 中編寫一個多平台配套應用程序,讓您可以輕鬆地從手機瀏覽伺服器。這樣,我不太懂科技的朋友只需按兩個按鈕即可連接到我的伺服器。

一路上,我發現你實際上可以使用 Dart 在 iOS 裝置上運行你自己的 Web 伺服器,我想...

嘿!為什麼我不直接在 Dart 中實作檔案伺服器呢!

兩週後,該應用程式就出現了。

在 iPhone 上運行的 Pafera 檔案伺服器

現在,與 Rust 版本相比,效能慢得可怕。 Rust 伺服器每秒可以處理約 40,000 個請求...

而 Dart 版本只能服務 400 左右...

但重要的是它有效...

並且它可以安裝在 iPhone 上!

使用應用程式

由於 Flutter 最新版本的 PDFx 庫中存在錯誤,我不得不停止為所有按鈕使用漂亮的圖標,因為它們顯示為醜陋的黑線。

但是,基本操作保持不變。

基本操作

一旦每個人都連接到相同的 WiFi 網路或手機熱點,只需點擊應用程式圖標,選擇要共享的資料夾,然後點擊「啟動伺服器」。

然後點擊二維碼按鈕,讓你的朋友掃描它,然後他們就可以愉快地在手機上瀏覽你的資料夾,甚至可以將你手機上的電影直接串流到他們的手機上。

如果您的朋友使用筆記型電腦或桌上型電腦,那也沒有問題。只需在其裝置上輸入二維碼上方顯示的 URL,他們就可以執行完全相同的操作。

如果您不是在 iOS 或 Android 上運行,那也沒有問題。 Flutter 應用程式在 OSX、Windows 和 Linux 上運作得很好,因此如果您在系統上安裝 rsync、FFMpeg 和 ImageMagick 供應用程式使用,您將獲得相同的功能,甚至更多功能。

進階功能

除了簡單的文件共享之外,還有很多高級功能,因此我將在這裡快速概述。

主機名稱是其他裝置按一下「搜尋其他伺服器」時向其顯示的內容。如果您同時共用多個設備,則可以使用它來快速區分一台設備和另一台設備。

資料夾是您實際共享的檔案系統資料夾。您可以按一下“使用文件資料夾”預設為“文件/共用”,或者您可以按一下“選擇資料夾”選擇另一個資料夾。您可能還需要按一下“使用文件資料夾”如果 iOS 從睡眠狀態恢復時無法正確刷新應用程式的設定。

使用目前 IP 會自動偵測您裝置目前的 WiFi IP。與“使用文件資料夾”一樣,如果 iOS 無法正確刷新應用程式並且它仍然使用先前的 WiFi 網路的 IP,請使用它。

“在所有介面上共享”將公共IP設定為0.0.0.0,這意味著 每個人 您連接到的任何東西都能夠看到您的伺服器。在具有多個連接的桌面上很方便,但在公共場所使用它要小心。

“開始共享”將運行伺服器並開啟主頁供您管理。再次單擊它將停止伺服器並保證您的文件安全。

“加載最後的設定”和“儲存目前設定”嚴格按照他們所說的去做。您的設定將儲存在 Documents/paferafileserver.cfg 中,就像控制台 Rust 版本一樣。

進階選項

不同的密碼選項可以為不同的人提供不同程度的存取權限。

通常,每個人只需連接到您的伺服器就可以看到您的文件,但如果您選中“啟用私有文件”如果低於這些,那麼沒有讀取密碼,任何人都無法看到您的檔案。

寫入密碼用於上傳、移動、複製或刪除檔案。如果沒有這個,除了查看您的文件之外,沒有其他人可以對您的系統執行任何操作。

shell 密碼在行動應用程式上無用,但在桌面作業系統和 Android 上的 Termux 上非常有用。它允許您運行任意系統命令,這使其非常強大,同時也非常危險。該功能預設為停用,且雙方都必須輸入 shell 密碼 檢查“啟用 shell 命令”下面來使用它。

各種啟用和停用選項可讓您選擇其他人可以對您的系統執行的操作 即使當 他們已經有了正確的密碼。這些選項會覆蓋所有其他選項,因此如果您停用複製文件,則任何人(甚至您自己)都無法複製文件。

特殊選項“停用 SSH 金鑰檢查”適合像我這樣經常漫遊並在不同設備之間來回同步文件的人。通常,SSH 在連接到 IP 位址已變更的系統時會要求確認,即使該系統的身份已知。此選項將使您能夠自動同步不同網路上的文件,而無需進入控制台來確認 SSH 連線。在您無法控制自己的網路上時請小心使用它。

行動裝置上的停用功能

與在 Termux 或桌面環境中運行不同,iOS 和 Android 應用程式無法存取 shell、rsync、ImageMagick 或 FFMpeg,因此所有高級同步和轉碼功能都已停用。

由於行動作業系統可以隨時殺死後台應用程序,因此定時自動任務也會被停用。

所有這些方面都有可能的解決方法,但整合這些功能所需的時間超出了我目前的意圖。如果有人有興趣付錢給我添加它們,那麼我們會看看會發生什麼。 😁

下載和原始碼

與我的所有專案一樣,原始碼託管在 Codeberg 上,可以 在這裡找到 .

對於預編譯的二進位文件,您可以 在這裡瀏覽發布目錄 ...

或直接點擊下面的連結:

由於 Apple 簽名要求,iOS 和 OSX 用戶必須等待應用程式在 App Store 上可用,或下載原始程式碼並為您的裝置編譯自己的版本。

申請成為 Beta 測試員

由於這是一個新版本,我確信各種系統上都會存在大量錯誤和奇怪的行為。如果您想為我測試此應用程序,請向我發送一封包含您的裝置和作業系統版本的電子郵件,我將在 TestFlight 上為您設定。

分發 Flutter 應用程式實際上比 Rust 版本複雜得多,在 Rust 版本中,我只上傳一個可執行檔並完成整個事情,所以請理解 Apple 需要三週時間來檢查我的應用程式並允許其進入 iOS應用商店。當蘋果需要根據歐盟的裁決允許第三方應用程式時,事情應該會容易得多。

一如既往,我希望你們覺得這個應用程式很有用,如果您想根據自己的目的自訂它,我隨時可以作為技術顧問。玩得開心!

關於作者

Jim 自從 90 年代買回 IBM PS/2 以來就一直在編程。直到今天,他仍然更喜歡手工編寫 HTML 和 SQL,並在工作中專注於效率和正確性。