全球主机交流论坛

标题: 【php】【oneindex】小盘鸡假装大盘鸡做下载。onedrive增值服务 [打印本页]

作者: donwa    时间: 2018-3-28 09:48
标题: 【php】【oneindex】小盘鸡假装大盘鸡做下载。onedrive增值服务
本帖最后由 donwa 于 2018-4-17 10:53 编辑

程序已更新:
http://www.91ai.net/thread-443421-1-1.html




不用服务器空间,不走服务器流量,
直接列onedrive目录,文件直链下载。

change log:
18-03-29: 更新了直链获取机制、缓存机制,避免频繁访问的token失效

原料:
1、PHP空间一个,PHP 5.6+ 打开curl支持
2、onedrive business 账号(如教育版 1T/5T)
     更新:onedrive business账号的域名必须有全局管理员,否则该域名的邮箱不支持API
3、oneindex 程序 : https://github.com/donwa/oneindex

安装:
1、复制oneindex到服务器,设置 config/ 、config/base.php 、 cache/ 可读写
2、浏览器访问、绑定账号
3、可以享用

demo:
列目录:https://xn.tn
直连下载:https://xn.tn/node-v8.9.4-x64.msi

图片外链:



Q&A:
Q:需要企业版或教育版的全局管理员?
A:不需要,全局管理员开出来的子账号就可以,不过该域名在office365必须要有管理员

Q:文件上传后,不能即时在程序页面显示出来?
A:有缓存,可以在config/base.php设置缓存时间。

Q:能去掉链接中的/?/吗?
A:可以,使用wordrepss的规则,然后修改 config/base.php:
    'root_path' => '?' 改为 'root_path' => ''

Q:能否使用自己的client_id、client_secret?
A: 1、按照 https://moeclub.org/2017/03/17/24/ 教程获得 client_id、client_secret、code
    2、修改 config/base.php 中的值
    3、访问 http://你的域名/?/install&code=你的code 完成账号绑定
//-----------------
感谢@Vicer 提供的技术和secret支持
作者: 孤单月色    时间: 2018-3-28 09:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: hellfires    时间: 2018-3-28 09:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: liji123    时间: 2018-3-28 09:59
可以可以,mark。
作者: yutan    时间: 2018-3-28 10:01
算然没太看明白,但是先mark再说,万一用得到呢
作者: yjsx86    时间: 2018-3-28 10:02
这个可以的
作者: Jetso    时间: 2018-3-28 10:03
看起来好像挺厉害似的
作者: houzai    时间: 2018-3-28 10:05
厉害啊。。火钳刘明
作者: 1941368542    时间: 2018-3-28 10:07
我感觉一定会火啊~~~~~
作者: mikj521    时间: 2018-3-28 10:10
{"error_description":"Invalid JWT token. The token is expired."}
作者: donwa    时间: 2018-3-28 10:14
mikj521 发表于 2018-3-28 10:10
{"error_description":"Invalid JWT token. The token is expired."}

什么地方报错?绑定账号的时候?没看过这种错误哦
作者: Vicer    时间: 2018-3-28 10:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: caiccp    时间: 2018-3-28 10:18
本帖最后由 caiccp 于 2018-3-28 10:19 编辑

这个是啥意思,跟登陆onedrive有什么区别吗,是可以直链?小白不懂

---------------------------------------------------------------------------------------------

又理解了一下,原来我是从个人使用出发,难怪理解不了
作者: donwa    时间: 2018-3-28 10:21
本帖最后由 donwa 于 2018-3-28 10:22 编辑
mikj521 发表于 2018-3-28 10:10
{"error_description":"Invalid JWT token. The token is expired."}


明白了,改改缓存时间试试。
作者: xyzardq    时间: 2018-3-28 10:22
无法绑定账号,每次点开绑定账号输入账号密码以后就返回原界面,重复数次都是如此
环境是php7.1 curl已开启 cache和config目录权限设定为777
作者: donwa    时间: 2018-3-28 10:24
xyzardq 发表于 2018-3-28 10:22
无法绑定账号,每次点开绑定账号输入账号密码以后就返回原界面,重复数次都是如此
环境是php7.1 curl已开启 ...

config/base.php 是否可写? 返回的链接是否带 code=*****
作者: xyzardq    时间: 2018-3-28 10:27
donwa 发表于 2018-3-28 10:24
config/base.php 是否可写? 返回的链接是否带 code=*****

config/base.php也给了777权限,返回链接为**/?/install&code=&code=,code后面为空
作者: ownones    时间: 2018-3-28 10:28
我好喜欢这里,你们个个都是人才。
作者: 羽檬    时间: 2018-3-28 10:30
厉害厉害。留个名
作者: donwa    时间: 2018-3-28 10:30
xyzardq 发表于 2018-3-28 10:27
config/base.php也给了777权限,返回链接为**/?/install&code=&code=,code后面为空

pm我qq?我直接看看?你的是个人版的onedrive还是教育版的?个人版的可能不行。
作者: myseil    时间: 2018-3-28 10:30
不错 貌似很不错的说!
作者: Vicer    时间: 2018-3-28 10:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: hundouluo    时间: 2018-3-28 10:35
其实这个个人版也是可以的。 一种更优雅的方式是,vps做下转发,利用python-onedrive先缓存到vps,然后vps地址直连, 照顾部分线路onedrive下载速度慢
作者: xyzardq    时间: 2018-3-28 10:36
donwa 发表于 2018-3-28 10:30
pm我qq?我直接看看?你的是个人版的onedrive还是教育版的?个人版的可能不行。 ...

740132069 谢谢大佬指导 用的1T教育版
作者: hlx98007    时间: 2018-3-28 10:37
base.php的redirect url怎么配
作者: zhujiwiki    时间: 2018-3-28 10:38
这个可以,就怕过段时间失效
作者: Vicer    时间: 2018-3-28 10:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: xyzardq    时间: 2018-3-28 10:39
Vicer 发表于 2018-3-28 10:30
有时候会自动跳转失败,自己切换回根目录试试.

试过了,依旧显示原界面
作者: Smart    时间: 2018-3-28 10:41
这个牛x了一定要支持
作者: donwa    时间: 2018-3-28 10:42
xyzardq 发表于 2018-3-28 10:39
试过了,依旧显示原界面

更新了错误提示。部分edu的onedrive也是不支持,好像管理员关闭了什么权限。
作者: gcczm    时间: 2018-3-28 10:47
这个可以有
作者: yywudi    时间: 2018-3-28 10:55
话说base.php 里面需要改什么吗?我绑定账号的时候显示是moeclub的API申请权限,可否用自己的呢?

https://github.com/skilion/onedrive  这个github里面的账户认证过程是访问一个地址然后返回一串地址,然后就是自己账号的API
作者: zgangang    时间: 2018-3-28 10:58
支持dalao
作者: donwa    时间: 2018-3-28 10:59
yywudi 发表于 2018-3-28 10:55
话说base.php 里面需要改什么吗?我绑定账号的时候显示是moeclub的API申请权限,可否用自己的呢?

https:/ ...

可以什么都不改,直接用moeclub的secret。

如果你自己知道怎么拿client_id和client_secret的话,可以用自己的。
拿到最后的code后,直接访问 http://你的域名/?/install&code=***进行绑定

redirect_uri只是绑定是做一次跳转,避免不了解的用户复制code之类的。

作者: yeshan    时间: 2018-3-28 11:12
非常有用,非常支持,回去在树莓派上搞了
作者: NIC    时间: 2018-3-28 11:20
本帖最后由 NIC 于 2018-3-28 11:26 编辑

出不了圖 404 Error Not Found
作者: yywudi    时间: 2018-3-28 11:21
本帖最后由 yywudi 于 2018-3-28 11:29 编辑
donwa 发表于 2018-3-28 10:59
可以什么都不改,直接用moeclub的secret。

如果你自己知道怎么拿client_id和client_secret的话,可以用 ...


那么,怎样能拿client_id 和 client_secret呢
看到了,的确是麻烦的很多.

https://moeclub.org/2017/07/07/304/
作者: wagumaxida    时间: 2018-3-28 11:22
楼主你好  感谢  怎样去除地址中间那个 ?呀  rewrite规则不熟悉
作者: donwa    时间: 2018-3-28 11:31
wagumaxida 发表于 2018-3-28 11:22
楼主你好  感谢  怎样去除地址中间那个 ?呀  rewrite规则不熟悉

使用wordrepss的规则,当wordpres配置就好了。
然后修改 config/base.php:
'root_path' => '?'
改为
'root_path' => ''
作者: wagumaxida    时间: 2018-3-28 11:35
donwa 发表于 2018-3-28 11:31
使用wordrepss的规则,当wordpres配置就好了。
然后修改 config/base.php:
'root_path' => '?'

谢谢大佬
作者: wagumaxida    时间: 2018-3-28 11:43
donwa 发表于 2018-3-28 11:31
使用wordrepss的规则,当wordpres配置就好了。
然后修改 config/base.php:
'root_path' => '?'

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

大佬 这样写上传到根目录行不行
作者: donwa    时间: 2018-3-28 11:47
wagumaxida 发表于 2018-3-28 11:43
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

试试嘛,反正把所有请求给index.php就对了。
作者: 524happy    时间: 2018-3-28 11:57
最需要这个玩意儿了。。
作者: xiaoxian88    时间: 2018-3-28 12:17
这个很牛
作者: info    时间: 2018-3-28 12:18
饭前 马克
作者: 哎呀    时间: 2018-3-28 12:35
其他文件可以正常下载,但图片无法显示和下载是为何呀
作者: cw723    时间: 2018-3-28 12:45
donwa 发表于 2018-3-28 11:47
试试嘛,反正把所有请求给index.php就对了。

感觉这样做外链的速度很一般。

因为要先请求VPS本身要作为转址。

是不是换成国内的VPS或者服务器速度会好很多呢?
作者: donwa    时间: 2018-3-28 12:52
cw723 发表于 2018-3-28 12:45
感觉这样做外链的速度很一般。

因为要先请求VPS本身要作为转址。

嗯。程序只做跳转,不下载和中转文件。

响应速度会慢一点,所以小文件感觉慢。

大文件下载基本可以跑满100m+。

你可以换个国内1m带宽的vps试试。
作者: Carseason    时间: 2018-3-28 12:57
楼主的php做法是怎样的?
教育版还不清楚,企业版的分享链接是经过2次跳转才出来的链接,首先经过301跳转后再经过302触发跳转才转到页面,如果单纯跳转会导致触发验证跳转到office的登录首页。
楼主这个问题是怎么解决的?
作者: qqab    时间: 2018-3-28 12:59
全局管理员? 这个好搞?
作者: 王大佬    时间: 2018-3-28 13:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: 524happy    时间: 2018-3-28 13:28
好像问题是,上传后,不能即时在程序页面显示出来?
作者: donwa    时间: 2018-3-28 13:34
qqab 发表于 2018-3-28 12:59
全局管理员? 这个好搞?

不需要全局管理员,全局管理员开出来的账号就可以。
作者: donwa    时间: 2018-3-28 13:36
524happy 发表于 2018-3-28 13:28
好像问题是,上传后,不能即时在程序页面显示出来?

可以自行去config/base.php设置缓存时间。
作者: 潜水看美女    时间: 2018-3-28 13:48
FORK
作者: liyafe1997    时间: 2018-3-28 13:49
没看懂…先收藏了
作者: 245097074    时间: 2018-3-28 13:56
没看懂,想看懂
作者: shijinqiang    时间: 2018-3-28 14:03
make
作者: yese11    时间: 2018-3-28 14:18
我只听懂了,,不占自己服务器的空间,,不占自己机器的流量?
作者: binker    时间: 2018-3-28 14:22
火钳刘明
作者: 左手写爱    时间: 2018-3-28 14:52
前排支持下  虽然感觉远程网盘挂的更快
作者: 245097074    时间: 2018-3-28 14:55
已装好,准备撸个样式好看点
作者: CheapLolicon    时间: 2018-3-28 14:56
本帖最后由 CheapLolicon 于 2018-3-28 16:57 编辑

onedrive 分享直连链接的流量在于30~60G/时,超过停一小时
但楼主这直连方式应该是非公开的?待会试试能不能绕过流量限制

//2018年3月28日 16:49:40

震惊了,这直连居然是单文件限流量
作者: nic2013    时间: 2018-3-28 15:03
技术高超,可惜我 没有 onedrive
作者: vForce    时间: 2018-3-28 15:20
大佬能介绍下client_id需要哪些权限么?已经在Azure AD里注册了应用,不知道需要哪些权限。报错信息只看得到app url,其他字符是乱码
作者: vForce    时间: 2018-3-28 15:27
东西确实不错,如果能支持上传就更好了!github已star
作者: themyth    时间: 2018-3-28 15:28
战略性mark
作者: 屋檐上的猫    时间: 2018-3-28 16:29
本帖最后由 屋檐上的猫 于 2018-3-28 16:46 编辑

首先感谢~
其次 如何做到只访问you.com/目录或链接
不然网站下的主目录谁都可见..
尝试了下 网站设置密码..直接输出的话 需要输入密码 不是很好
或者有什么更好的优雅的方式实现..
作者: donwa    时间: 2018-3-28 18:06
屋檐上的猫 发表于 2018-3-28 16:29
首先感谢~
其次 如何做到只访问you.com/目录或链接
不然网站下的主目录谁都可见..

暂时无此开发计划,你可以自己修改,整个程序的代码很少。
作者: beixiaoqian    时间: 2018-3-28 18:08
onedrive business  这个去哪里申请
作者: donwa    时间: 2018-3-28 18:09
vForce 发表于 2018-3-28 15:20
大佬能介绍下client_id需要哪些权限么?已经在Azure AD里注册了应用,不知道需要哪些权限。报错信息只看得 ...

1、按照 https://moeclub.org/2017/03/17/24/ 教程获得 client_id、client_secret、code
2、修改 config/base.php 中的值
3、访问 http://你的域名/?/install&code=你的code 完成账号绑定
作者: 屋檐上的猫    时间: 2018-3-28 18:26
donwa 发表于 2018-3-28 18:06
暂时无此开发计划,你可以自己修改,整个程序的代码很少。

已经解决了 弄了障眼法 再次感谢~
作者: donwa    时间: 2018-3-28 19:28
CheapLolicon 发表于 2018-3-28 14:56
onedrive 分享直连链接的流量在于30~60G/时,超过停一小时
但楼主这直连方式应该是非公开的?待会试试能不 ...

应该不是单文件限流,这个方式获取的直链是很快会过期的。
所以分享应该直接分享 http://你的域名/?/test.zip 这样。
程序会定期刷新直链地址。
作者: oskey    时间: 2018-3-28 19:39
本帖最后由 oskey 于 2018-3-29 00:59 编辑

感谢楼主,放在宝塔里直接可用,
作者: 捕风    时间: 2018-3-28 19:52
试了下onedrive business账号的域名没有全局管理员,失败了。先留个坑,以后在玩
作者: CheapLolicon    时间: 2018-3-28 20:11
本帖最后由 CheapLolicon 于 2018-3-29 01:33 编辑
donwa 发表于 2018-3-28 19:28
应该不是单文件限流,这个方式获取的直链是很快会过期的。
所以分享应该直接分享 http://你的域名/?/test ...


这点我当然知道
我刚刚是用我的网址直连链接来刷的
3个5G文件,刷了大概有65G左右流量吧,然后被限了
3M小文件,刷了1k次,也被限了

你可以查看一下

不过值得一说是,被限只是单文件,其他文件倒是没问题
作者: donwa    时间: 2018-3-28 20:19
CheapLolicon 发表于 2018-3-28 20:11
这点我当然知道
我刚刚是用我的网址直连链接来刷的
3个5G文件,刷了大概有65G左右流量吧,然后被限了

显示被限制后,删除cache/文件夹下的缓存文件呢?
可以缩短缓存时间试试。感觉还是过期了。
作者: CheapLolicon    时间: 2018-3-28 20:21
donwa 发表于 2018-3-28 20:19
显示被限制后,删除cache/文件夹下的缓存文件呢?
可以缩短缓存时间试试。感觉还是过期了。 ...

还真行了(
作者: donwa    时间: 2018-3-28 20:47
CheapLolicon 发表于 2018-3-28 20:21
还真行了(

可以修改 config/base.php 中的file_cache_time,设成60秒或更短。

期待你的测试,看看限制究竟是多少。
作者: 跳帧    时间: 2018-3-28 21:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: CheapLolicon    时间: 2018-3-28 22:16
donwa 发表于 2018-3-28 20:47
可以修改 config/base.php 中的file_cache_time,设成60秒或更短。

期待你的测试,看看限制究竟是多少。 ...


设置了60s了……测试结果和之前一样,差不多的流量差不多的次数,就超速
但清空缓存文件夹里的php,倒是能恢复正常……看来要写设置个定时清理的crontab任务……
作者: i65u    时间: 2018-3-28 22:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: 524happy    时间: 2018-3-28 22:23
{"error_description":"Invalid JWT token. The token is expired."}
过段时间就提示这个了。
作者: donwa    时间: 2018-3-28 22:50
CheapLolicon 发表于 2018-3-28 22:16
设置了60s了……测试结果和之前一样,差不多的流量差不多的次数,就超速
但清空缓存文件夹里的php,倒是 ...

要不你直接关闭缓存吧。把缓存时间设置成 10秒或者0秒。或者 cache/ 目录删掉,程序不会报错的。
作者: donwa    时间: 2018-3-28 22:52
524happy 发表于 2018-3-28 22:23
{"error_description":"Invalid JWT token. The token is expired."}
过段时间就提示这个了。

把缓存时间设置短点。config/base.php
'dir_cache_time' => 60,
'file_cache_time' => 60,

手动把cache/目录下的缓存文件都删除了。


作者: donwa    时间: 2018-3-28 23:14
CheapLolicon 发表于 2018-3-28 22:16
设置了60s了……测试结果和之前一样,差不多的流量差不多的次数,就超速
但清空缓存文件夹里的php,倒是 ...

pm个联系方式,明天准备把缓存机制重新写过,到时帮忙测试下。
作者: Jennifer    时间: 2018-3-28 23:18
加油。明天找时间测一下这个。
作者: fengshu    时间: 2018-3-28 23:26
厉害了,就是没onedrive
作者: imhaibo    时间: 2018-3-28 23:31
好像很厉害,先绑了再说
作者: CheapLolicon    时间: 2018-3-28 23:37
donwa 发表于 2018-3-28 22:50
要不你直接关闭缓存吧。把缓存时间设置成 10秒或者0秒。或者 cache/ 目录删掉,程序不会报错的。 ...

还有这种操作?
不过我现在定时5分钟清空缓存文件夹,倒是没什么问题了,应该。
今晚就循环wget挂着,看看能刷多少流量
作者: 985464672    时间: 2018-3-28 23:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: 半潜军长    时间: 2018-3-29 01:16
好 可以欢快的玩wget了
作者: wuxudd    时间: 2018-3-29 09:39
有个小问题,使用wordpress的伪静态在有二层目录的时候点击最上面返回上层的文件夹路径定位错误。
作者: baymin    时间: 2018-3-29 10:13
屋檐上的猫 发表于 2018-3-28 16:29
首先感谢~
其次 如何做到只访问you.com/目录或链接
不然网站下的主目录谁都可见..

h5ai设置密码应该是可以的
作者: xxhjkl    时间: 2018-3-29 12:24
牛逼啊
作者: 斜阳晚暮    时间: 2018-3-29 12:54
能把根目录设置为onedrive的某一个文件夹更好。
不然网盘就没有隐私了。
作者: donwa    时间: 2018-3-29 15:17
CheapLolicon 发表于 2018-3-28 22:16
设置了60s了……测试结果和之前一样,差不多的流量差不多的次数,就超速
但清空缓存文件夹里的php,倒是 ...

程序更新了。再测试下?
作者: 245097074    时间: 2018-3-29 16:13
楼主可以参考下老外这玩意吗,可以外链视频在线观看,文件,图片外链,做的还是蛮好的
http://www.91ai.net/thread-438253-1-1.html
作者: 斜阳晚暮    时间: 2018-3-29 16:43
今天新修改的,好像不能正确获取下载链接了?
作者: savior    时间: 2018-3-29 16:55
不明觉厉,战略性mark




欢迎光临 全球主机交流论坛 (https://91ai.net/) Powered by Discuz! X3.4