公网网盘(强烈推荐)¶
优点:
- 支持实例和百度网盘、阿里云盘等直接进行数据传输(实例上传到网盘,网盘下载到实例),方便下载数据到不同实例、备份实例重要数据、迁移实例。阿里云盘在海外的传输速度依然很快,如果您在海外使用AutoDL非常推荐~
- 相比本地和实例之间传输,速度快且稳定
- 和其他人共享数据集
缺点:
- 需要额外配置授权算一个缺点 :)
数据安全:AutoDL通过您设置的独立密码对个人信息进行加密,加密后的个人信息只有通过您的密码才能解密,包括AutoDL也无法解密。详细实现方法请看文档最下方。
AutoDL中公网网盘的实现可看作三方网盘客户端(叫做AutoPanel
),和官方客户端的不同有:该工具为Server/Brower架构(类比JupyterLab理解,Server可以不在本地电脑,但可以在本地浏览器使用)。架构如下:
从图中可以看出:与官方客户端不同,AutoPanel的Server启动在哪台主机,那么就由该主机和网盘发生上传下载交互,和浏览器所在主机无关。因此您可以更灵活的将AutoPanel的Server启动在本地电脑、AutoDL的实例(已默认启动)、或其他您自己的服务器当中,然后通过Server提供的访问地址在浏览器完成操作。
使用方法¶
Step.1:打开AutoPanel¶
租用实例开机后,在快捷工具一列找到AutoPanel入口,点击打开
Step.2:授权¶
第一步需要设置独立访问密码,该密码非常重要(更复杂更安全),您接下来授权的网盘个人账户信息均通过该密码进行加密。如忘记密码则需重新初始化(执行: rm -rf /root/autodl-tmp/.autodl
然后重启AutoPanel:ps -ef | grep autopanel | awk '{print $2}' | xargs kill -9
)。
通过您设置的独立密码加密后的个人信息只有通过您的密码才能解密,包括AutoDL也无法解密。
阿里云盘¶
阿里云盘在2024年7月左右对三方应用进行了限制,需要购买三方权益包才能获得良好的上传下载速度,具体请参考文档,请根据自己的需求使用阿里云盘
选择阿里云盘,然后使用阿里云盘的APP扫码授权登录。
百度网盘¶
百度网盘由于规则调整,不再支持个人认证及个人创建应用功能,需要企业认证才可开通应用,因此不再推荐使用百度网盘
登录百度网盘后,创建应用(如果您没有进行过百度的认证可能创建失败,需先完成认证),创建完成后获取AppKey和SecretKey。以下应用名称推荐填写AutoDL,以免不必要的麻烦。
在AutoPanel点击添加授权,输入AppKey和SecretKey后,点击获取Access Token将打开百度网盘的网页,将其返回的Token粘贴过来即可完成授权。
OSS对象存储¶
支持MinIO、阿里云OSS、腾讯云OSS和兼容S3协议的OSS
Step.3:文件浏览/上传/下载¶
如果是超过10GB以上的大文件在上传时可能需要花几十秒到几分钟不等的时间计算文件Hash值,计算完成后才会开始上传。另外计算Hash值的效率与cpu/内存相关,如果使用了无卡模式,该过程会更慢。请耐心等待~
选中网盘后可以浏览网盘中的文件,点击下载可以下载至本地(实例中)
点击上传按钮则可以上传本地(实例中)的文件至网盘
同时可存在多个上传和下载文件任务,他们将排队进行上传下载,在右侧「传输任务」中可查看
功能说明¶
-
同时支持多个网盘的授权管理
-
阿里云盘和百度网盘均支持断点续下载,断点上传正在支持中
-
阿里云盘支持秒传
-
上传下载速度一般为5~20MB/s,具体与当时网络负载有关(百度网盘与会员有关)
-
网盘官方关键限制说明:
一. 百度网盘:
1.速度限制:与会员等级相关。实测非会员下载1MB/s, 上传10MB/s。会员上传下载10MB/s+
2.上传路径限制:只能上传文件至[我的应用数据(部分账户叫apps)]目录,其他目录无权限。下载时无路径限制
3.上传文件大小限制:
> 普通用户单个上传文件大小上限为4GB
> 会员用户单个上传文件大小上限为10GB
> 超级会员用户单个上传文件大小上限为20GB
二. 阿里云盘:
1.上传文件大小限制
> 普通用户单个上传文件大小上限为100GB
> 会员用户单个上传文件大小上限为200GB
> 超级会员用户单个上传文件大小上限为1TB
自动授权¶
上述授权过程需要在每个新创建的实例中重复添加,如果您希望只需添加授权一次,后续创建的实例均自动使用该授权,那么可以在「控制台」的「设置」菜单下托管授权信息到AutoDL,由AutoDL帮您完成添加授权:
安全¶
AutoPanel的安全设计目标是:即使最糟糕的情况其他人拿走了您电脑上的配置信息,如果没有您的独立密码,也依然无法通过该数据访问您的网盘。
加密实现机制¶
在您授权后AutoPanel将获取到网盘的Access Token等相关信息,该信息将使用您设置的独立密码按以下方式进行加密:
- 在前后端传输时, 使用加盐摘要算法(sha1 + salt)对您设置的独立密码计算得到一串hash值(该Hash值在登录后用作于前后端的鉴权Token,请勿泄露给其他人)
- 然后通过对该Hash值进行摘要/循环式移位/线性转换得到32位AESKey
- 使用AESKey作为AES-256算法Key,对您授权的网盘访问数据(Access Token等)进行计算,得到AESMiddleOutput
- 使用内置的线性转换生成AESKey2,作为AES-256算法Key,对AESMiddleOutput进行加密运算,得到AESFinalOutput
- 使用Non Standard Encoding Base64对AESFinalOutput进行运算,结果写入AutoPanel Server所在主机{{cache_dir}}/.autodl/autopanel.security.db 文件中存储,该文件为AutoPanel运行中记录的唯一敏感数据文件,即使发给其他用户,除了使用您的独立密码均无法解密,包括AutoPanel开发者也无法解密
- 最后AutoPanel的接口做了防暴力破解,连续输错密码会受到限制
关于AES:
AES is available in many different encryption packages, and is the first (and only) publicly accessible cipher approved by the U.S. National Security Agency (NSA) for top secret information when used in an NSA approved cryptographic module (see Security of AES, below). WIKI