通过 iPhone 轻松共享文件的新方法

Pafera 文件服务器现在可在 iOS 上使用!
2024-01-20 16:39:38
👁️ 1024
💬 0

想要快速了解一下吗?只需观看上面的视频即可!

内容

  1. 介绍
  2. 全新 Flutter 文件共享应用
  3. 使用应用程序
  4. 高级功能
  5. 移动设备上已禁用的功能
  6. 下载和源代码
  7. 申请成为 Beta 测试员

介绍

在 Android Termux 中运行的 Pafera 文件服务器

去年,我发布了一款名为 Pafera 文件服务器 。这是一个用 Rust 编写的控制台应用程序,可为您的设备运行基于 Web 的文件管理器,允许将文件轻松共享到任何具有 Web 浏览器的设备,并具有方便的幻灯片放映功能来展示您的照片和柴犬图标。这意味着您可以参加聚会,让 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 Apps 可以在 OSX、Windows 和 Linux 上很好地运行,因此您将获得相同的功能,如果您在系统上安装 rsync、FFMpeg 和 ImageMagick 供应用使用,您将获得更多功能。

高级功能

除了简单的文件共享之外,还有相当多的高级功能,所以我将在这里做一个简单概述。

当其他设备点击“搜索其他服务器”时,主机名会显示出来。如果您同时共享几台设备,您可以使用它来快速区分一台设备与另一台设备。

文件夹是您实际共享的文件系统文件夹。您可以点击“使用文档文件夹”作为 Documents/shared 中的默认文件夹,也可以点击“选择文件夹”选择其他文件夹。如果 iOS 在从睡眠状态恢复时无法正确刷新应用程序的设置,您可能还需要点击“使用文档文件夹”。

使用当前 IP 会自动检测您设备的当前 WiFi IP。与“使用文档文件夹”一样,如果 iOS 无法正确刷新应用程序并且仍在使用来自之前 WiFi 网络的 IP,请使用它。

“在所有接口上共享”将公共 IP 设置为 0.0.0.0,这意味着 每个人 您所连接的任何设备上都可以看到您的服务器。在具有多个连接的桌面上很方便,但在公共场所使用它时要小心。

“开始共享”将运行服务器并打开主页供您管理。再次单击它将停止服务器并确保您的文件安全。

“加载上次设置”和“保存当前设置”的作用正如其名称所示。您的设置将存储在 Documents/paferafileserver.cfg 中,就像控制台 Rust 版本一样。

高级选项

不同的密码选项可以给予不同的人不同级别的访问权限。

通常情况下,每个人只要连接到您的服务器就可以看到您的文件,但如果您选中下面的“启用私人文件”,那么没有读取密码的任何人都无法看到您的文件。

写入密码用于上传、移动、复制或删除文件。如果没有此密码,其他人就无法对您的系统做任何事情,只能查看您的文件。

shell 密码在移动应用程序上毫无用处,但在桌面操作系统和 Android 上的 Termux 上非常有用。它允许您运行任意系统命令,这使其非常强大,同时也非常危险。此功能默认处于禁用状态,您必须同时输入 shell 密码 选中下面的“启用 shell 命令”来使用它。

各种启用和禁用选项可让您选择其他人可以对您的系统执行的操作 即使 他们已经有了正确的密码。这些将覆盖所有其他选项,因此如果您禁用复制文件,则没有人(甚至您自己)将能够复制文件。

特殊选项“禁用 SSH 密钥检查”适用于像我这样经常在不同设备之间来回同步文件的人。通常,当连接到 IP 地址已更改的系统时,SSH 会要求确认,即使该系统的身份已知。此选项将使您能够自动同步不同网络上的文件,而无需进入控制台确认 SSH 连接。当您在无法控制的网络上时,请谨慎使用它。

移动设备上已禁用的功能

与在 Termux 或桌面环境中运行不同,iOS 和 Android 应用程序无法访问 shell、rsync、ImageMagick 或 FFMpeg,因此所有高级同步和转码功能都被禁用。

由于手机操作系统可以随时杀死后台应用程序,定时自动任务也被禁用。

所有这些方面都有可能的解决方法,但集成这些功能所需的时间目前超出了我的预期。如果有人有兴趣付钱给我来添加它们,那么我们看看会发生什么。😁

下载和源代码

与我的所有项目一样,源代码托管在 Codeberg 上,可以 找到这里 .

对于预编译的二进制文件,您可以 在这里浏览发布目录 ...

或者直接点击下面的链接:

由于 Apple 签名要求,iOS 和 OSX 用户必须等待应用程序在 App Store 上线,或者下载源代码并为您的设备编译自己的版本。

申请成为 Beta 测试员

由于这是一个新版本,我确信各种系统上都会有大量错误和奇怪的行为。如果您愿意为我测试此应用,请给我发送一封电子邮件,其中包含您的设备和操作系统版本,我会在 TestFlight 上为您设置。

分发 Flutter 应用程序实际上比 Rust 版本复杂得多,在 Rust 版本中,我只需上传一个可执行文件即可完成整个过程,因此请理解 Apple 需要三周时间才能检查我的应用程序并允许其进入 iOS App Store。当 Apple 需要按照欧盟裁决允许第三方应用程序时,事情应该会容易得多。

与往常一样,我希望你们觉得这个应用程序有用,如果你想根据自己的目的定制它,我随时可以作为技术顾问。玩得开心!

关于作者

Jim 自 90 年代获得 IBM PS/2 以来一直从事编程工作。直到今天,他仍然喜欢手写 HTML 和 SQL,并且在工作中注重效率和正确性。