将电影、大视频文件传输至 iPhone 实在是太难了,我们用树莓派做一个文件中转中心吧,这样你的 iPhone 就连接到了这个新的空间,随时快速的读取文件。

iOS 传大文件实在是太难了
我每次想传一些电影、高清视频到我的 iPhone 上,可是没有什么好的方法。
用 iCloud 云盘传输,速度太慢太费时间了,而且占用我的 iCloud 储存空间;我还试过用 Macbook 的 Airdrop 隔空投送来发送大视频,但是不是怎么稳定,传输好几次有时候传输完成后找不到文件,大文件很容易就传输失败,要试几次有可能才成功。
而且传输成功后,即使我把视频放在了 iOS 文件 App 中的 “我的 iPhone” 本机上,并没有占用 iCloud 空间,但是当 iPhone 自动备份的时候,会把这些文件一并备份到 iCloud,以至于我的 iPhone iCloud 备份文件太大了,100G 多!
不知道大家有有没有我这样的体验。于是呢,我决定利用树莓派做一个文件中转站,让 iPhone 读取树莓派上的文件就行了,完美解决以上问题。
1. 安装 Samba
两年前的今天,你说巧不巧,正好整整两年前我写过一篇《树莓派当作局域网外接设备》的文章,这次的配置跟这篇文章很类似,都是一样的原理和工具。
在执行安装前,还是老样子,先来一波例常更新准备:
sudo apt-get update && apt-get upgrade
更新完毕后,运行安装:
sudo apt-get install samba samba-common-bin sudo apt-get install netatalk (可选,用于支持AFP) sudo apt-get install avahi-daemon(可选,用于支持网内的计算机自动发现)
最后两行的 netatalk 和 avahi-daemon 不是必须的,可选。
安装过程中会出现以下提示:

我们选择 <是> 即可,因为咱们的宽带服务,一般都要开启 DHCP 服务。
2. 配置 Samba
安装没什么坑可踩,配置文件需要好好设置一番。
Samba 的配置文件地址为 /etc/samba/smb.conf,如果你没有权限修改此文件,可以使用 root 用户登录修改,或者使用如下命令修改文件的权限:
sudo chmod 777 /etc/samba/smb.conf
2.1 smb.conf 配置文件
smb.conf 配置文件由两部分组成,注意看文件中的 Global Settings 和 Share Definitions 分隔符:

Global Settings
Global Settings 下面的设置都是与 Samba 服务整体运行环境有关,就是一些参数的配置信息。
我们要在 Global Settings 下面配置如下信息:
#======================= Global Settings ======================= [global] workgroup = WORKGROUP min receivefile size = 16384 write cache size = 262144 display charset = cp936 unix charset = cp936 dos charset = cp936
第一行 workgroup 工作组是默认的生成的,如果你的 Windows 没有特意修改工作组名称,那么都是 WORKGROUP,不用修改。
之后,我们要加两行信息,这后两行信息非常重要,它优化了 Samba 的传输速度,不会让你在拖动视频进度条的时候,发生卡断和卡顿。
下面是一些常见的 Samba 配置,但是时至今天,很多配置参数都失效了。例如 write cache size 等参数,都被删除了,最后根据网上的资料,以及我自己测试的结果,也就只有上面两项是需要配置的。
你可以参考 Samba 文档:https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html
# 以下很多配置已经废弃了 socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=1048576 SO_SNDBUF=1048576 aio read size = 65536 aio write size = 65536 aio write behind = true write cache size = 2097152 max xmit = 65536 large readwrite = yes use sendfile = yes min receivefile size = 16384 getwd cache = true follow symlinks = no wide links = no log level = 0
Share Definitions
Share Definitions 下面的设置,则是针对各个共享目录,分别进行的设置,只对当前的共享资源起作用。
接着,我们配置一个共享目录即可:
如果你是 pi 用户登陆,那么建议命名为 [pi],这样可以保证只会出现一个共享文件夹:
#======================= Share Definitions ======================= [pi] comment = pi share path = /home/pi read only = no create mask = 0777 directory mask = 0777 guest ok = no browseable = yes public = yes writable = yes
我将共享目录路径设置为了 /home/pi,这个路径就是 pi 用户的文件,视频、音频、图片等都有相应的文件夹,我们主要把文件放到这个目录下即可。
read only 只读属性选择 no 否,权限改为 777,guset 嘉宾免密码登录账户我禁用了。修改完成后,保存即可。
2.2 添加用户
我们把 pi 用户添加进去,并输入密码(建议密码于 pi 保持一直,方便记忆):
sudo smbpasswd -a pi
设置完成后,我们重启 samba 服务:
sudo samba restart
3.连接
3.1 iOS 和 iPadOS 连接
打开 文件 App,点击右上角的更多按钮,选择 “连接服务器”。
我们的服务器地址是树莓派的局域网 ip 地址,协议是 smb。然后我们输入用户名和密码即可(因为客人身份被我禁用了,所以无法用免密码的客人用户登录):

3.2 macOS 连接
同理,我们在 访达 -> 前往 -> 连接服务器(快捷键 Command+K)打开设置页面,进行设置。

3.3 Windows 连接
Windows 连接更方便,只需要在 资源管理器 中输入树莓派地址 \\192.168.0.120,即可:


