将电影、大视频文件传输至 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,即可:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Next Post

一台电脑配置两个Github账号

周六 1月 1 , 2022
出于很多种原因,我们可能需要同时使用两个或多个 G […]