- A+
Oneindex 简介:
OneIndex 是针对 Onedrive 网盘的一个开源程序。可以将 Onedrive 存储的文件展示,直链下载。支持视频在线播放,不占用服务器空间,而且不走服务器流量。
Oneindex 安装前准备:
安装前需要先申请 OneDrive 网盘,OneIndex 支持个人的 OneDrive 网盘,不过个人版的就算是扩容最大也才 15G,当然用来放一些文档是足够的,而如果你是用来放视频,那我推荐你申请 5T 的 OneDrive 网盘。
OneDrive 5T 申请方法:
- 打开 Office 365 Education:https://products.office.com/en-us/student?tab=students
- 填上如有乐享提供的临时邮箱:https://51.ruyo.net/8263.html
- 从临时邮箱获取的验证码及填写一些账号设置。
Oneindex 安装:
先去 Oneindex 开源地址:https://github.com/donwa/oneindex 下载
这里服务器用的宝塔版面,Nginx,注意 PHP 版本必须 5.6+。
跟正常部署网站一样,在宝塔版面建立新站点,上传 Oneindex 到新站点目录。
设置 Nginx 伪静态:
- if (!-f $request_filename){
- set $rule_0 1$rule_0;
- }
- if (!-d $request_filename){
- set $rule_0 2$rule_0;
- }
- if ($rule_0 = "21"){
- rewrite ^/(.*) /index.php?/$1 last;
- }
然后打开域名进行安装,注意后台地址:https://xx.com/?/admin,默认密码是:oneindex 。
Demo:WXLOG 云
拓展:
如果你想离线 BT 下载到 OneDrive 网盘,可以使用 Aria2+Aria2Ng 。
Aria2 安装:
- wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh
安装后可以使用 bash aria2.sh 查看修改 Aria2 配置。
AriaNg 安装:
下载 AriaNg:https://pan.wxlog.cn/Other/AriaNg-1.1.0.zip
跟正常部署网站一样,在宝塔版面建立新站点,上传 Aria2Ng 到新站点目录,绑定【域名】或者【IP:端口】即可。
打开【域名】或者【IP:端口】就可访问以 AriaNg 界面。
在AriaNg 设置界面填好 Aria2 地址及密钥等,显示已连接即可。
部署 OneDrive 上传脚本:
这里使用的是萌咖大佬的脚本;(请忽略折叠部分脚本,脚本作者已经不再维护。)
展开
脚本特点:脚本支持文件夹上传,支持获取文件的匿名直链,且只适用于 OneDrive 非个人版。
Github 地址:https://github.com/0oVicero0/OneDrive
脚本安装命令:
- wget --no-check-certificate -qO- "https://raw.githubusercontent.com/0oVicero0/OneDrive/master/OneDrive.sh" |bash
运行命令 onedrive -a,将返回的网址复制到浏览器打开,再登陆你的 OneDrive for Business 账号,登陆成功后复制地址栏中的地址(复制包括 localhost 的所有链接地址),粘贴到 SSH 客户端里,敲回车键即可。
如果返回以下字段:It seems like we have a refresh token, so we are ready to go,那就是设置成功了。
命令使用:
- #此命令只查看根目录文件
- onedrive -l
- #如果我们要查看根目录 root 文件夹里的文件
- onedrive -l /root
- #此命令默认上传到 OneDrive 根目录
- onedrive '/root/1.txt'
- #如果上传到指定文件夹,就需要加-f 参数
- onedrive -f RATS '/root/1.txt' #上传到 OneDrive 根目录的 RATS 文件夹
- onedrive -f RATS/RATS '/root/1.txt' #上传到 OneDrive 根目录 RATS 文件夹里的 RATS 文件夹
- #此命令默认上传到 OneDrive 根目录
- onedrive-d '/root'
- #如果上传到指定文件夹,就需要加-f 参数
- onedrive-d -f RATS '/root' #上传到 OneDrive 根目录的 RATS 文件夹
- onedrive-d -f RATS/RATS '/root' #上传到 OneDrive 根目录 RATS 文件夹里的 RATS 文件夹
这是萌咖大佬使用 Golang 基于新的 API 写了个效率更高的上传工具,同时也修复了各种 Shell 版本遗留下来的小问题,该版本特点就是授权简单,无需依赖,单文件。
Github 地址:https://github.com/MoeClub/OneList/tree/master/OneDriveUploader
1、授权认证
点击右侧 URL 登录并授权,授权地址→传送门。
授权后会获取一个 localhost 开头打不开的链接,这里只需要记住 code ,也就是链接中 code= 和 & 中间的参数。
2、安装 OneDriveUploader
- wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/amd64/linux/OneDriveUploader -P /usr/local/bin/
- chmod +x /usr/local/bin/OneDriveUploader
3、初始化配置
- #国际版,将 url 换成你上面复制的授权地址,包括 http://loaclhost。
- OneDriveUploader -a "url"
- #个人版(家庭版),将 url 换成你上面复制的授权地址,包括 http://loaclhost。
- OneDriveUploader -ms -a "url"
- #中国版(世纪互联),将 url 换成你上面复制的授权地址,包括 http://loaclhost。
- OneDriveUploader -cn -a "url"
如果提示 Init config file: /path/to/file/auth.json 或者 Init config file: `/root/auth.json` 类似信息,则初始化成功。
4、使用命令
- Usage of OneDriveUploader:
- -a string
- // 初始化授权
- Setup and Init auth.json.
- -b string
- // 自定义上传分块大小, 可以提高网络吞吐量, 受限于磁盘性能和网络速度.
- Set block size. [Unit: M; 5<=b<=60;] (default "10")
- -c string
- // 配置文件路径
- Config file. (default "auth.json")
- -n string
- // 上传单个文件时,在网盘中重命名
- Rename file on upload to remote.
- -r string
- // 上传到网盘中的某个目录, 默认: 根目录
- Upload to reomte path.
- -s string
- // 要上传的文件或文件夹
- Upload item.
- -t string
- // 线程数, 同时上传文件的个数. 默认: 2
- Set thread num. (default "2")
5、命令示例
- #将当前目录下的 Mark.jpg 文件上传到 OneDrive 网盘根目录
- OneDriveUploader -s "Mark.jpg"
- #将当前目录下的 Mark1.jpg 文件上传到 OneDrive 网盘根目录,并改名为 Mark2.jpg
- OneDriveUploader -s "Mark1.jpg" -n "Mark2.jpg"
- #将当前目录下的 Download 文件夹上传到 OneDrive 网盘根目录
- OneDriveUploader -s "Download"
- #将当前目录下的 Download 文件夹上传到 OneDrive 网盘 Test 目录中
- OneDriveUploader -s "Download" -r "Test"
- #将同目录下的 Download 文件夹上传到 OneDriv 网盘 Test 目录中,使用 10 线程
- OneDriveUploader -t 10 -s "Download" -r "Test"
- #将同目录下的 Download 文件夹上传到 OneDrive 网盘 Test 目录中,使用 15 线程,并设置分块大小为 20M
- OneDriveUploader -t 15 -b 20 -s "Download" -r "Test"
Aria2 自动上传
将下面代码自己稍作修改后保存为 rcloneupload.sh 脚本文件。
- #!/bin/bash
- GID="$1";
- FileNum="$2";
- File="$3";
- MaxSize="15728640";
- Thread="3"; #默认 3 线程,自行修改,服务器配置不好的话,不建议太多
- Block="20"; #默认分块 20m,自行修改
- RemoteDIR=""; #上传到 Onedrive 的路径,默认为根目录,如果要上传到 MOERATS 目录,""里面请填成 MOERATS
- LocalDIR="/usr/local/caddy/www/aria2/Download/"; #Aria2 下载目录,记得最后面加上/
- Uploader="/usr/local/bin/OneDriveUploader"; #上传的程序完整路径,默认为本文安装的目录
- Config="/root/auth.json"; #初始化生成的配置 auth.json 绝对路径,参考第 3 步骤生成的路径
- if [[ -z $(echo "$FileNum" |grep -o '[0-9]*' |head -n1) ]]; then FileNum='0'; fi
- if [[ "$FileNum" -le '0' ]]; then exit 0; fi
- if [[ "$#" != '3' ]]; then exit 0; fi
- function LoadFile(){
- if [[ ! -e "${Uploader}" ]]; then return; fi
- IFS_BAK=$IFS
- IFS=$'\n'
- tmpFile="$(echo "${File/#$LocalDIR}" |cut -f1 -d'/')"
- FileLoad="${LocalDIR}${tmpFile}"
- if [[ ! -e "${FileLoad}" ]]; then return; fi
- ItemSize=$(du -s "${FileLoad}" |cut -f1 |grep -o '[0-9]*' |head -n1)
- if [[ -z "$ItemSize" ]]; then return; fi
- if [[ "$ItemSize" -ge "$MaxSize" ]]; then
- echo -ne "\033[33m${FileLoad} \033[0mtoo large to spik.\n";
- return;
- fi
- ${Uploader} -c "${Config}" -t "${Thread}" -b "${Block}" -s "${FileLoad}" -r "${RemoteDIR}"
- if [[ $? == '0' ]]; then
- rm -rf "${FileLoad}";
- fi
- IFS=$IFS_BAK
- }
- LoadFile;
授权 chmod +x /root/.aria2/rcloneupload.sh ,同时再 Aria2 配置文件中加上一行 on-download-complete=/root/.aria2/rcloneupload.sh ,重启 Aria2 生效。
如果你想上传到指定的文件夹,修改如下:
- #上传到 Onedrive 里的 RATS 目录,参数改为:RemoteDIR="RATS";
- #上传到 Onedrive 里的 RATS 目录里的 RATS 目录,参数改为:RemoteDIR="RATS/RATS";
如果感觉上传速度较慢,可以编辑 /usr/local/etc/OneDrive/onedrive.cfg ,修改 threads 线程数,默认 2。可以修改为 5,建议别太高。
有时候我们在电脑上编辑一些脚本或者文件时,放到 linux vps 服务器上会出现问题,其实只需要安装 dos2unix 转换下格式就可以用了。
- 安装 dos2unix
- #Centos
- yum install dos2unix
- 转换文件
- dos2unix /root/xx #文件位置
参考及整理:
OneIndex 部署教程,利用 OneDrive 打造专属分享型网盘
使用 Aria2+Aria2Ng+OneIndex+OneDrive 建立不限流量/离线 BT 下载/在线观看网盘
VPS 上传文件到 OneDrive 网盘脚本,可配合 Aria2 实现自动上传
历史上的今天:
- 2018: Wordpress 开启全局 HTTPS 的设置方法(14)
- 2017: 《突然七日/在我坠落前》(0)
2020年3月19日 上午9:53 沙发
我以为被折叠的脚本是个依赖,然后就装了并授权,接着发现下面的脚本才是主角的时候,从/user/local/bin中rm删除了onedrive的两个文件。接着安装并执行了初始化代码OneDriveUploader -a “code一长串直接贴进去的”。然后提示:
Error: Get token [401 Unauthorized]
我尝试使用其他浏览器进行授权(最大程度避免缓存同时允许cookie),但获得的code是一样的。错误也是一样的。
第一个脚本安装成功了。但上传时发现无法在根目录创建目录什么都(登陆账号为root)
Searching for ‘VideoUpload’ in ”
2020-03-19 09:37:59 Creating folder ‘VideoUpload’ in ”
Could not create folder ‘VideoUpload’ in ‘root’
使用的账号是学校账号。
2020年3月29日 下午1:56 1层
OneDriveUploader -a “url”
将 url 换成你上面复制的授权地址,包括 http://loaclhost。试试
还有有没有给脚本加权限以及脚本LocalDIR的变量有没有修改。
账号这方面有没有影响我不太清楚。
2020年3月1日 上午6:18 板凳
安装到最后部跳转到JU.TN这个网址,已经挂了。
请问下怎么解
2019年12月25日 上午2:03 地板
老哥你的云盘文件是存在OneDrive,还是自己服务器上啊,你的下载速度很快
2020年1月3日 下午1:07 1层
OneDrive
2019年11月4日 下午5:08 4楼
Aria下载完上传到onedrive是走服务器流量吧···
Aria和oneindex必须在一个服务器里吗···
我把oneindex放在阿里云服务器
把Aria放在家里群晖是否可行呢
2019年11月13日 下午6:27 1层
Aria和oneindex可以放在不同服务器里
2019年5月15日 下午1:11 5楼
看到那麽多代碼就怕了。。。
2019年5月15日 下午1:17 1层
如果只是安装Oneindex,其实就跟我们建Wordpress一样简单,不,比建Wordpress更简单
2019年5月10日 下午10:25 6楼
不上车了,没有那么大的存储需求。
2019年5月11日 下午6:14 1层
目前一般的网盘已经足够用了