模拟115网盘客户端的上传功能,部分实现参考 Fake115Upload,仅用于研究目的
- 支持秒传模式,需要已经有人上传过指定文件到115
- 支持上传超大文件,上传大小超过5GB的文件需要115 vip会员
- 支持断点续传(适合用于上传超大文件)
- 支持显示上传进度条
安装最新稳定版本,运行:
go install github.com/orzogc/fake115uploader@latest
安装最新git版本,运行:
go install github.com/archyta/fake115uploader@master
首先要先运行一次 fake115uploader 生成设置文件fake115uploader.json(使用 -l 文件 指定设置文件,默认为程序所在的文件夹里的fake115uploader.json),然后登陆网页版115,按F12后刷新,将115网页请求的Cookie的值全部复制到fake115uploader.json的cookies的值里(参考这里),或者运行时用参数 -k Cookie 指定要用的Cookie。
fake115uploader -f 文件 秒传模式上传文件,可以指定多个文件且文件必须是最后一个参数,下同。
fake115uploader -u 文件 先尝试用秒传模式上传文件,失败后改用普通模式上传,不支持上传超过5GB的文件。
fake115uploader -m 文件 先尝试用秒传模式上传文件,失败后改用断点续传模式上传,可以随时中断上传再重启上传(适合用于上传超大文件,注意暂停上传的时间不要超过数周)。可以设置fake115uploader.json的partsNum或者用 -parts-num 分片数量 参数指定上传文件的分片数量,数量范围为1到10000。
fake115uploader -b 保存文件 文件 将文件的115 hashlink(115://文件名|文件大小|文件HASH值|块HASH值)追加写入到指定的保存文件。
fake115uploader -i 文本文件 从指定的文本文件逐行读取115 hashlink并将其对应文件导入到115中,hashlink可以没有115://前缀。
fake115uploader -o 保存文件 从cid指定的115文件夹导出该文件夹内(包括子文件夹)所有文件的115 hashlink到指定的保存文件。
要上传文件到指定的115文件夹,可以在fake115uploader.json或运行时加上参数 -c cid 设置cid(参数设置会覆盖设置文件里的设置,默认为0,即根目录),cid为115文件夹的cid,可以登陆115网页版查看网页地址获取cid。
要上传文件夹,需要运行时加上参数 -recursive 。
运行时加上参数 -d 文件夹 指定存放断点续传存档文件的文件夹,默认是程序所在的文件夹。
设置fake115uploader.json的resultDir或运行时加上参数 -r 文件夹 可以将上传结果保存在指定的文件夹内,默认不保存。
运行时加上参数 -n 不读取设置文件,这时必须要用 -k Cookie 指定115的Cookie。
上传文件时加上参数 -a 利用阿里云内网上传文件,需要在阿里云服务器上运行本程序,同时也需要115在服务器的所在地域开通了阿里云OSS,可以在服务器上运行 curl https://uplb.115.com/3.0/getuploadinfo.php 查看OSS地域。
上传文件时加上参数 -e ,上传成功后自动删除本地原文件。
设置fake115uploader.json的httpRetry或运行时加上参数 -http-retry 重试次数 设置HTTP请求失败后的重试次数,默认为0(即不重试)。
运行时加上参数 -v 显示更详细的信息(调试用)。
fake115uploader的HTTP请求和OSS上传默认使用环境变量http_proxy和https_proxy的值作为代理。
可以设置fake115uploader.json的httpProxy或者使用参数-http-proxy 代理设置HTTP代理,支持SOCKS5代理。
可以设置fake115uploader.json的ossProxy或者使用参数-oss-proxy 代理设置OSS上传代理,代理格式和HTTP代理一致,不支持SOCKS5代理。