专栏首页小车博客[OneIndex 2.0] 大版本更新,代码已放出。onedrive文件分享。

[OneIndex 2.0] 大版本更新,代码已放出。onedrive文件分享。

https://github.com/donwa/oneindex

oneindex

Onedrive Directory Index

功能:

不用服务器空间,不走服务器流量,

直接列onedrive目录,文件直链下载。

change log:

18-03-29: 更新直链获取机制、缓存机制,避免频繁访问的token失效 18-03-29: 解决非英文编码问题 18-03-29: 添加onedrive共享的起始目录 功能 18-03-29: 添加rewrite的配置文件 18-03-29: 增加sqlite模式cache支持 18-03-29: 添加缩略图功能 18-03-29: 添加404判断 18-03-31: 添加console 18-04-13: 修复特殊文件名无法下载问题 18-04-13: 添加命令行上传功能 18-04-16: 更新 2.0 beta 18-04-16: 更新展示界面 18-04-16: 响应式,支持小屏设备 18-04-16: 图片在线预览 18-04-16: 视频在线播放 18-04-16: 代码在线查看(js、css、html、sh、php、java、md等) 18-04-16: README.md 支持,解析各目录下(onedirive目录下) README.md 文件,在页面尾部展示。

需求:

1、PHP空间,PHP 5.6+ 打开curl支持 2、onedrive business 账号 (企业版或教育版) 3、oneindex 程序

安装:

1、复制oneindex到服务器,设置config/config/base.phpcache/ 可读写 2、浏览器访问、绑定账号 3、可以使用

计划任务

[可选]推荐配置,非必需。后台定时刷新缓存,可增加前台访问的速度

# 每小时刷新一次token
0 * * * * /具体路径/php /程序具体路径/one.php token:refresh

# 每十分钟后台刷新一遍缓存
*/10 * * * * /具体路径/php /程序具体路径/one.php cache:refresh

命令行功能

仅能在php cli模式下运行 清除缓存:

php one.php cache:clear

刷新缓存:

php one.php cache:refresh

刷新令牌:

php one.php token:refresh

上传文件:

php one.php upload:file 本地文件 [onedrive文件]

例如:

//上传demo.zip 到onedrive 根目录  
php one.php upload:file demo.zip  

//上传demo.zip 到onedrive /test/目录  
php one.php upload:file demo.zip /test/  

//上传demo.zip 到onedrive /test/目录并命名为 d.zip
php one.php upload:file demo.zip /test/d.zip  

可配置项

配置在 config/base.php 文件中:

onedrive共享的起始目录:

'onedrive_root'=> '', //默认为根目录

如果想只共享onedrive下的 /document/share/ 目录

'onedrive_root'=> '/document/share', //最后不带 '/'

去掉链接中的 /?/ : 需要添加apache/nginx/iis的rewrite的配置文件 参考程序根目录下的:.htaccessnginx.confWeb.config

  //在config/base.php 中
  'root_path' => '?' 

改为

    'root_path' => '' 

nginx图片404问题,参考https://github.com/donwa/oneindex/issues/14

缓存时间:   初步测试直链过期时间为一小时,默认设置为:

  'cache_expire_time' => 3600, //缓存过期时间 /秒
  'cache_refresh_time' => 600, //缓存刷新时间 /秒

如果经常出现链接失效,可尝试缩短缓存时间,如:

  'cache_expire_time' => 300, //缓存过期时间 /秒
  'cache_refresh_time' => 60, //缓存刷新时间 /秒

设置缓存模式为sqlite:

'cache_type'=> 'sqlite'  // file | sqlite

测试地址:http://1.fl3.pw/

Q&A:

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

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

Q:能否使用自己的client_id、client_secret? A: 1、按照 https://moeclub.org/2017/03/17/24/ 教程获得 client_id、client_secret 2、修改 config/base.php 中的client_id、client_secret、redirect_uri(回调url)的值,获取code 3、访问 http://你的域名/?/install&code=你的code 完成账号绑定

Q:回调地址的功能和代码是什么?会不会影响程序使用 A:由于client_id、client_secret和callback_url是绑定的,为了实现一键绑定,添加了/onedrive-login作为中转 其功能仅为跳转回安装目录,代码如下:

<?php 
if(!empty($_GET['state'])){
  header('Location: '.$_GET['state'].'&code='.$_GET['code']);
}

可自行使用 .com .org .tn 的域名进行部署。

感谢 moeclub 提供的 client_id 和 client_secret,以实现一键绑定

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 电脑蓝屏代码大全

    编号 代码 含意 0 0x00000000 作业完成。 1 0x00000001 不正确的函数。 2 0x00000002 系统找不到指定的档案。 3 0x0...

    用户1202364
  • 短网址程序YOURLS安装及配置教程与设置中文

    用户1202364
  • 自建磁力链搜索网站做老司机

    用户1202364
  • 谈一谈php://filter的妙用

    php://filter是PHP中独有的协议,利用这个协议可以创造很多“妙用”,本文说几个有意思的点,剩下的大家自己下去体会。本来本文的思路我上半年就准备拿来做...

    phith0n
  • python参数调用

    py3study
  • php的mvc框架原理及常见框架学习

    现在大部分公司开发都会基于一些成熟的开源框架,比如Laravel、ThinkPHP、Codelgniter、yii、yaf。市面上开源框架有几十种,

    老雷PHP全栈开发
  • 导入 Avada 模板时出现 php time limit 和 php max input vars 提示怎么办?

    网友导入 Avada 模板的时候出现下图这个问题,之前很多网友都遇到过类似问题,好多人用的宝塔面板,在后台能找到修改的可视化界面,而如果是主机商提供的面板就没这...

    魏艾斯博客www.vpsss.net
  • Billu_b0x靶机渗透

    得到IP后,访问网页,发现只有登录框,没有什么意外的东西,扫描一下后台目录,看看有没有什么文件可利用的,扫描完后,发现有一堆php,同时还有一个phpmy(ph...

    Elapse
  • 3-5年的PHPer常见的面试题

    看到有很多,的总结一下,比较适合有一定经验的PHPer 平时喜欢哪些php书籍及博客?CSDN、虎嗅、猎云 js闭包是什么,原型链了不了解? for与forea...

    思梦php
  • SOA 面向服务框架设计与实现

    文章节选自 《Netkiller Architect 手札》 由于Java 语言的编译与重启不可抗拒缺陷,所选择使用PHP弥补这个缺陷。 在合适的场景中使用PH...

    netkiller old

扫码关注云+社区

领取腾讯云代金券