php自动上传到onedrive,OLAINDEX+Aria2+Aria2Ng+下载完后自动上传至OneDrive脚本

秋水易冷

准备

OneDrive账号一枚

SSH能连上的服务器一台

域名两枚,并将域名解析到服务器上(子域名也行)

对Linux的几个常用命令了解,例如:cd ls rm mv vi echo

另外请自备一瓶六个核桃

耗时半个小时左右

OLAINDEX搭建

一、安装宝塔面板

wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

注:bt 命令可调出控制面板

脚本执行完后,登录网页 http://ip:8888

登录之后,安装 LNMP (左边),需要注意的是,PHP 版本请选择 PHP 7.2 ,MySQL可以不选择(服务器配置低的,不推荐安装MySQL,不安装MySQL对本教程无任何影响,另外可节省大量安装时间)

二、PHP 配置

点击左侧菜单 软件管理–>PHP-7.2 设置–>安装扩展–>安装 fileinfo

然后点击 禁用函数–>找到 proc_open、 proc_get_status 、 exec 、 shell_exec 函数,并删除

删除完后重启PHP

三、安装 Composer

curl -sS https://getcomposer.org/installer | php

mv composer.phar /usr/local/bin/composer

四、创建网站

用宝塔创建一个网站并绑定域名,不需要数据库,PHP版本选择 PHP-72

五、安装 OLAINDEX

cd /www/wwwroot/你的域名 #就是先进入到你创建的web目录下

rm -rf *

git clone https://github.com/WangNingkai/OLAINDEX.git tmp

mv tmp/.git .

rm -rf tmp

git reset --hard

composer install -vvv #这里确保已经安装composer成功

chmod -R 755 storage/

chown -R www:www *

php artisan od:install #如果报权限问题,建议先执行权限命令

chmod 777 storage/app/config.json #赋予配置文件权限

注:为了防止域名导入出错,请想要一次全部输入执行的分上下两次执行

提示输入域名的时候,一定要这样写 https://你的域名

六、站点数据配置

先绑定子目录为 /public ,再关闭 防跨站攻击 (open_basedir)

设置伪静态为

location / {

try_files $uri $uri/ /index.php?$query_string;

}

设置域名SSL证书,开启强制HTTPS

七、绑定 OneDrive

登录网页 https://你的域名 ,按照下图操作

网页 https://你的域名/admin 进入后台,默认密码为 12345678 进行相关设置

八、其他

网页图片更改 ./public 目录下直接加 favicon.ico 图片文件

图床上传文件保存路径格式修改 ./app/Http/Controllers/ManageController.php (64行)

$middleName = '/'.date('Y-m-d').'/'.date('A-h-i').'/';

图床上传限制修改

两分钟内只能上传10张图片的限制 ./routes/web.php (50~51行)

Route::post('image/upload', 'ManageController@uploadImage')

->name('image.upload')->middleware('throttle:100,1', 'checkImage');

一次只能上传10张的限制 ./resources/views/default/image.blade.php (32行)

maxFiles: 100,

如果遇到缩略图无法打开的情况请关闭防盗链,并删掉或注释掉配置文件的如下部分(51~63行)

#location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

# {

# expires 30d;

# error_log off;

# access_log /dev/null;

# }

#

# location ~ .*\.(js|css)?$

# {

# expires 12h;

# error_log off;

# access_log /dev/null;

# }

Aria2搭建

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh

端口、目录默认即可

放行 6800 端口

注:为了方便管理Aria2下载的文件,你可以用宝塔创建一个指向下载目录 /usr/local/caddy/www/aria2/Download 的FTP

Aria2Ng搭建

一、创建网站

用宝塔创建一个网站并绑定域名,不需要数据库,PHP版本选择 纯静态

二、安装 Aria2Ng

cd /www/wwwroot/你的另一个域名 #就是先进入到你创建的web目录下

wget https://github.com/mayswind/AriaNg/releases/download/1.0.0/AriaNg-1.0.0.zip

yum install unzip

unzip AriaNg-1.0.0.zip

rm -rf AriaNg-1.0.0.zip

网页 http://你的另一个域名 进入,并填写Aria2密码,刷新界面,连接成功

如果想HTTPS访问Aria2Ng界面,除了在宝塔去部署SSL外,还需执行

echo "

rpc-secure=true

rpc-certificate=/www/server/panel/vhost/ssl/你的另一个域名/fullchain.pem

rpc-private-key=/www/server/panel/vhost/ssl/你的另一个域名/privkey.pem

" >> /root/.aria2/aria2.conf

service aria2 restart

下载完自动上传脚本

简介

该脚本是通过Aria2的一个参数 on-download-complete 调用的,传参 id 下载文件数 路径

安装

vi 命令写入自动上传脚本

vi /root/.aria2/up.sh

按 i ,然后复制下面的内容进去,再按 ESC 键,输入 :wq 就能保存退出; vi 命令相关用法自行了解( dd 删除一行)

#!/bin/bash

downloadpath='/usr/local/caddy/www/aria2/Download' #修改成Aria2下载文件夹

folder='/Aria2' #上传至网盘里的文件夹(自动创建)

if [ $2 -eq 0 ];then

exit 0

fi

path=$3 #取原始路径

olaindex=`find /www/wwwroot -name artisan` #OLAINDEX的artisan文件的绝对路径

while(true);do #path被赋值为Aria2下载目录,filepath被赋值为下载文件的绝对路径或第一层目录

filepath="$path"

path="${path%/*}"

if [ "$path" = "$downloadpath" ] && [ $2 -eq 1 ];then #单文件

php $olaindex od:upload "$filepath" "$folder/" #上传

rm -rf "$filepath" "$filepath.aria2" "$path/*.torrent" #删除

php $olaindex od:cache #刷新

exit 0

elif [ "$path" = "$downloadpath" ];then #文件夹

cd "$filepath"

for file in *;do #第一层目录

php $olaindex od:upload "$file" "$folder/${filepath##*/}"

rm -rf "$file"

done

for file in */* */*/*;do #第二、三层目录

php $olaindex od:upload "$file" "$folder/${filepath##*/}/${file%/*}"

rm -rf "$file"

done

rm -rf "$filepath" "$filepath.aria2" "$path/*.torrent"

php $olaindex od:cache

exit 0

fi

done

下面这是OneIndex的脚本

#!/bin/bash

downloadpath='/usr/local/caddy/www/aria2/Download' #修改成Aria2下载文件夹

folder='/Aria2' #上传至网盘里的文件夹(自动创建)

if [ $2 -eq 0 ];then

exit 0

fi

path=$3 #取原始路径

olaindex=`find /www/wwwroot -name one.php` #OneIndex的one.php文件的绝对路径

while(true);do #path被赋值为Aria2下载目录,filepath被赋值为下载文件的绝对路径或第一层目录

filepath="$path"

path="${path%/*}"

if [ "$path" = "$downloadpath" ] && [ $2 -eq 1 ];then #单文件

php $olaindex upload:file "$filepath" "$folder/" #上传

rm -rf "$filepath" "$filepath.aria2" "$path/*.torrent" #删除

php $olaindex cache:refresh #刷新

exit 0

elif [ "$path" = "$downloadpath" ];then #文件夹

php $olaindex upload:folder "$filepath" "$folder/"

rm -rf "$filepath" "$filepath.aria2" "$path/*.torrent"

php $olaindex cache:refresh

exit 0

fi

done

修改Aria2配置文件

chmod +x /root/.aria2/up.sh

echo "

seed-time=0 #不做种

on-download-complete=/root/.aria2/up.sh

" >> /root/.aria2/aria2.conf

service aria2 restart

你可能感兴趣的:(php自动上传到onedrive,OLAINDEX+Aria2+Aria2Ng+下载完后自动上传至OneDrive脚本)