懒猫网盘隐藏功能,化身Web文件服务器

忘机山人

发布于65天前
博客图片修整中,看不了可以先搜索公众号“忘机山人”看。


https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.shell.files


我在不同电脑之间传输大文件的时候,喜欢使用懒猫网盘作为中转,相对于使用微信,邮箱传输来说,内网更加有安全保证,同时也比拔插移动硬盘更加方便,同时这些文件还能在懒猫微服上存一个备份,可以方便回溯。

于是现在有了一个新的需求,我在上海有一台DGX Spark,平时用来下载和推理模型,但是毕竟机器在国内,很多资源无法访问,wget 甚至只有可怜的几百K,而如果通过SSH/SCP等方式来做,DGX Spark所在环境的网络带宽很小,所以速度不会比直接wget海外资源快多少。于是,既然上传到DGX Spark不行,那么我们就让它下载,而源站就是我们的懒猫微服。

### 常规场景:图形界面传输

如果在Windows和MacOS之间需要传输文件,我会在两台机器上分别都安装上懒猫网盘,然后通过一台机器上传,另一台下载,这样不需要写任何一行命令,也不需要配置共享文件夹,只需要鼠标拖拖拽拽就好。

如果两台机器登录的是相同账户,那么直接访问同一个文件夹即可;如果是家里人互相分享文件,由于每个人的网盘空间是独立的,那设置一个共享文件夹就好了,一个上传一个下载。

### 特殊场景:Headless服务器

我的DGX Spark的情况有些特殊,由于端口和网络带宽的限制,只能通过SSH连接,所以就相当于一个Headless的服务器。美中不足的是,我不打算配置Spark的VNC桌面,这时候就没有网盘的图形界面供我下载了。


![03bcea391a71b3f3a145c4fd393fccb9.png](https://dl.playground.lazycat.cloud/guidelines/459/5df2fce8-4fd2-4254-af19-99e41343aeff.png "03bcea391a71b3f3a145c4fd393fccb9.png")

#### 方案一:传统方式(不推荐)

最简单的办法就是使用`python -m http.server`这种方式开启一个文件服务器,这个能够解决问题但是不优雅。

#### 方案二:懒猫网盘隐藏API(推荐)

转念一想,如果把这个http server的功能集成到网盘里,网盘是不是就会有自带的http server呢?VIP群询问之后,就有了这个隐藏API。

把懒猫网盘当作文件服务器,Mac通过图形客户端访问,DGX Spark通过API访问。

##### 1. 配置网络组网

首先给DGX Spark安装HClient,并且启动TUN模式。这样Spark的网络就和我的懒猫微服打通了,即使我的客户端、微服、Spark分别在三个地方,懒猫的组网也能无视距离,把相隔千里的三台机器网络打通。

```
sudo setcap cap_net_admin=ep ./hclient-cli-$os-$arch
./hclient-cli-$os-$arch -tun
```

关于Spark安装HClient的具体操作,可以看这篇介绍,也可以翻我之前的攻略(实在不好翻):

https://lazycat-docs.netlify.app/%E5%85%A5%E9%97%A8/13.%20%E6%87%92%E7%8C%AB%E5%BE%AE%E6%9C%8D%E5%AE%9E%E6%88%98%E5%85%A5%E9%97%A8%EF%BC%88%E5%8D%81%E4%B8%89%EF%BC%89%EF%BC%9A%E6%87%92%E7%8C%AB%E7%A9%BF%E9%80%8F%E4%B8%8D%E5%8F%AA%E5%9B%BE%E5%BD%A2%E5%8C%96%EF%BC%8C%E7%BA%AF%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B9%9F%E5%8F%AF%E4%BB%A5.html#_2-%E5%90%AF%E7%94%A8-tun-%E6%A8%A1%E5%BC%8F

虽然协议是http,但是懒猫网盘的组网自带了加密,所以我们可以安全下载。

##### 2. 了解API格式

懒猫网盘的隐藏API格式如下:

```
https://file.微服名.heiyu.space/_lzc/files/home/文件路径
```

文件路径就是在网盘里看到的路径,不包括登录的用户名。以我的MP3为例:

```
https://file.微服名.heiyu.space/_lzc/files/home/music/1.mp3
```

##### 3. 获取认证凭证

当然懒猫网盘默认是带Single Sign On认证的,所以我们的API要绕过这一层,一般来说是JWT token或者Cookies。而在浏览器的环境下,请求会自动携带Cookies完成和服务端的认证,但是在Headless的环境下,我们就得手动注入了。

![image.png](https://dl.playground.lazycat.cloud/guidelines/459/41e829d5-493a-4e86-a718-315f62b757f7.png "image.png")

在Web端完成登录之后,我们去浏览器抓凭证:

1. 在懒猫网盘页面启动开发者模式(F12)
2. 查看Cookie,找到`HC-Auth-Token`的值

![image.png](https://dl.playground.lazycat.cloud/guidelines/459/83558649-8a5a-483d-b06f-de7f3ff671e1.png "image.png")


示例:`HC-Auth-Token=your-token-here`


##### 4. 使用命令行下载文件

回到DGX Spark上,使用命令行进行从懒猫网盘进行下载。

假设网盘上的文件路径是:

```
music/第1天-正念基础_进入当下.mp3
```

那么完整的文件URL是:

```
https://file.微服名.heiyu.space/_lzc/files/home/music/第1天-正念基础_进入当下.mp3
```

注意:中文会在http的链接中被转义,这点不必过分担心。

###### 方法1:使用wget下载(推荐)

```bash
wget --no-check-certificate \
     --header="Cookie: HC-Auth-Token=your-token-here" \
     "https://file.micro.heiyu.space/_lzc/files/home/music/%E7%AC%AC1%E5%A4%A9-%E6%AD%A3%E5%BF%B5%E5%9F%BA%E7%A1%80_%E8%BF%9B%E5%85%A5%E5%BD%93%E4%B8%8B.mp3" \
     -O "第1天-正念基础_进入当下.mp3"
```

参数说明:
- `--no-check-certificate`:跳过SSL证书验证
- `--header`:添加Cookie认证头
- `-O`:指定保存的文件名

###### 方法2:使用curl下载

```bash
curl -k -L \
     -H "Cookie: HC-Auth-Token=your-token-here" \
     "https://file.micro.heiyu.space/_lzc/files/home/music/%E7%AC%AC1%E5%A4%A9-%E6%AD%A3%E5%BF%B5%E5%9F%BA%E7%A1%80_%E8%BF%9B%E5%85%A5%E5%BD%93%E4%B8%8B.mp3" \
     -o "第1天-正念基础_进入当下.mp3"
```

参数说明:
- `-k`:跳过SSL证书验证
- `-L`:跟随重定向
- `-H`:添加Cookie认证头
- `-o`:指定保存的文件名

###### 方法3:使用curl的cookie参数(更简洁)

```bash
curl -k -L \
     --cookie "HC-Auth-Token=your-token-here" \
     "https://file.micro.heiyu.space/_lzc/files/home/music/%E7%AC%AC1%E5%A4%A9-%E6%AD%A3%E5%BF%B5%E5%9F%BA%E7%A1%80_%E8%BF%9B%E5%85%A5%E5%BD%93%E4%B8%8B.mp3" \
     -o "第1天-正念基础_进入当下.mp3"
```

参数说明:
- `--cookie`:直接传递Cookie值,比`-H`方式更简洁

### 最后


通过懒猫网盘的隐藏API `/_lzc/files/`,我们可以轻松在DGX Spark上实现Headless方式的文件下载。起码在国内的宽带环境里,用下载的高吞吐量来规避了某些情况上传带宽限速的条件。

核心要点:
- API路径:`https://file.微服名.heiyu.space/_lzc/files/home/文件路径`
- 认证方式:通过Cookie中的`HC-Auth-Token`进行身份验证
- 安全提醒:⚠️ 请妥善保管Token,避免泄露

一行命令配合Cookie认证,即可实现远程文件下载,

关于七层网络还有很多类似的小技巧,我们一起通过懒猫微服来玩。

评论

0

暂无评论

说点什么呢~
收藏
0
0
0