第一种用echo输出HTML。因为HTML有的元素中有双引号,所以用echo输出的内容用单引号括起来,避免出错,也省了转义这一步。比如这样的代码:<?phpif(!$_POST){echo'<formaction=""method="post">服务器地址:<inputtype="text"name="host"value="localhost"/><br/>数据库账号:<inputtype="text"name="user"value=""/><br/>数据库密码:<inputtype="password"name="pwd"value=""/><br/>指定数据库:<inputtype="text"name="db"value="test"/><br/><inputtype="submit"value="确定"/></form>';}?>或者这种加了转义符号的:<?phpecho"<inputtype=\"submit\"value=\"确定\"/>";?>第二种就是用(<<<)标记符了。<?phpprint<<<EOT<divclass="slidecont">{$label[deepblue_mainslide]}</div><divclass="newcontainter"><divclass="head">{$label[deepblue_mainh1]}</div><divclass="cont"id="Tab1">{$label[deepblue_maint1]}</div><divclass="cont"id="Tab2">{$label[deepblue_maint2]}</div></div><ahref="$rs[url]"title="$rs[descrip]"target="_blank">$rs[name]</a>EOT;?>“<<<EOT”和“EOT;”中间的文档直接输出,一个比较好理解的说法是“一个多行的echo”。优点是输出大段HTML方便,不需要转义,而且可以引用变量。但是在使用(<<<EOT)标记符还有一点需要注意:标识符结束字符串既EOT;要独占一行,前后都不许再有内容,否则这个php文件就相当于废了。这里的EOT标记可以替换成任意标记比如:print<<<END
教程中可能会标记一些关于Easyimage2.0的在Free.fr空间的兼容问题,这个目前作者没修复的情况下,可以自行修改。废话多,尽量让小白看得懂,Easyimage2.0在Free.fr,后台登录不上,然后报错,我也不会PHP,索性就不要后台。1、寻找一个法国代理,或者法国webftp,当然也可以买个法国VPS自己做,上传一个PHPwebshell,这样子就可以自己很方便的管理空间了。当然我这里要毛遂自荐下我搭建的webftp,这个是给大家传webshell的,不是传文件用的,每个月125G流量,大家轻点。https://hostloc.com/thread-996290-1-1.html推荐个webshell(我在giuhub找的,别问我安全不安全,问就是不安全。):https://github.com/or2me/Filebox下载filebox.php2、让Free.fr支持php5.6,Free.fr从2019年04月04日开始测试php7.3,这么多年了,也没全部上线,真感叹法国人的“严谨”。长话短说:在根目录新建一个.htaccess,然后把下面的代码粘贴进去。<IfDefineFree>php561</IfDefine>来源:http://les.pages.perso.chez.free.fr/migrations/php5v6.io3、选择一个适合自己的程序,我用过2个,都比较不错,都是无数据库的程序,且都能在Free.fr上运行,空间单个文件最大支持10M。一个是老外的:https://gitlab.com/mojo42/Jirafeau这个不单纯的是图床,是一个网盘程序,文件真实路径会被隐藏,支持直链,可以引用图片。一个是论坛的MJJ:https://github.com/icret/EasyImages2.0这个是一个单纯的图床了,目前只支持本地存储,不要问有没有其他方式的存储,问就是没有。https://hostloc.com/thread-1012354-1-1.html。4、下面的主要是围绕EasyImages2.02.6.2这个版本来讲,因为后台用不了报错,我这边采取先本地部署,然后上传程序和配置文件,不上传后台,反正后台用处不大。在本地部署一个php5.6的环境,然后下载源码,提前进后台配置好,再打包上传到Free.fr。上传后,修改config/config.php里面的domain和imgurl,结尾不要加/。进后台的时候,能关的都要关了,后台好像有点问题,下面几个就算关掉,但是配置文件没变,这几个设置注意下:image_recycltinyfilemanagercheckEnvupload_logs,改成0。还有一个背景图填写框,获取的地址是一个变量,不是常量,保存后,后台登录的背景图就报错了。再修改application/function.php第32行ini_set('memory_limit','512M');改成ini_set('memory_limit','128M');并删掉25行的header('Content-Type:text/html;charset=utf-8');基本就可以用了,剩下的一些死链就自己修改对应的application文件夹header.php和footer.php。5、CloudFlareWorkers反代创建一个Workers,启动器随便选一个都可以。复制下面代码,修改下域名,支持二级以上目录,比如http://mjj.free.fr/hostloc/必须/结尾。addEventListener('fetch',event=>{constrequest=event.request;consturl=newURL(request.url);constresponse=fetch('http://mjj.free.fr/'+url.pathname+url.search,{method:request.method,headers:request.headers,body:request.body,});event.respondWith(response);});然后域名随便A一个IP,比如1.2.4.8,然后在域名的workers里面添加6、在ScrapeShield里面关闭Hotlink保护7、优化篇,设置下缓存。防止免费空间因为滥用而被限制,只能委屈下CF了。
分享3种CSS实现背景图图片全屏铺满自适应的方式,希望对你有所帮助。01margin:0px;background:url(images/bg.png)no-repeat;background-size:100%100%;background-attachment:fixed;url(images/beijing.png)——图片路径的位置;no-repeat——图片不重复;center0px——center是距离页面左边的定位,0px是距离页面上面的定位;background-position:center0——就是图片的定位,同上;background-size:cover;——把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。背景图像的某些部分也许无法显示在背景定位区域中;min-height:100vh;——视窗的高度,“视区”所指为浏览器内部的可视区域大小,即window.innerWidth/window.innerHeight大小。02background:url("bg.png")no-repeat;height:100%;width:100%;overflow:hidden;background-size:cover;//或者background-size:100%;03给body标签指定背景图,这样背景图就可以填充整个浏览器viewport了。其实,该方案对所有的块级容器都可以生效。块级容器的宽高是动态的,那么背景图将自动伸缩,充满整个容器。cssbody标签的样式如下:body{/*加载背景图*/background-image:url(images/bg.jpg);/*背景图垂直、水平均居中*/background-position:centercenter;/*背景图不平铺*/background-repeat:no-repeat;/*当内容高度大于图片高度时,背景图像的位置相对于viewport固定*/background-attachment:fixed;/*让背景图基于容器大小伸缩*/background-size:cover;/*设置背景颜色,背景图加载过程中会显示背景色*/background-color:#464646;}
之前我们分享了OneManager的安装与使用教程,实际上OneManager可以和CloudFlareWorkers整合并且可以绑定自己的域名访问。CloudFlareWorkers与OneManager结合有两种方式:一种是利用CloudFlareWorkers实现OneManager自定义域名访问,适用于Heroku空间架构OneManager。另一种是就是直接利用CloudFlareWorkers安装OneManager并且实现自定义域名访问,这样做的好处就是完全免去了空间的成本了,在访问量不大的情况下CloudFlareWorkers足以自己使用了。当然,CloudFlareWorkers直接架构OneManager只能挂载OneDrive,而不支持阿里云盘。更多的网盘存储架构方法还有:支持WebDAV的国内外网盘整理汇总-各大网盘WebDAV服务器地址及连接方式十个国外优秀的网盘云存储使用对比-免费存储,单个文件,自动同步备份和在线文档Cloudreve网盘系统离线下载配置-Aria2一键安装管理脚本增强版使用方法一、Heroku+OneManager+CloudFlare演示:Heroku空间架构:https://wzfoumm.herokuapp.com/CloudFlareWorkers反代:https://wzmm.wzfou.workers.dev/自定义域名:https://wzpan.wzfou.net/1.1CloudFlareWorkers如果你已经在Heroku架构了OneManager,但是觉得Heroku提供的二级域名不喜欢,或者是Heroku的空间访问速度慢,可以试试CloudFlareWorkers绑定域名并使用CloudFlareCDN加速。OneManager网盘目录列表程序-支持Onedrive,阿里网盘等在线预览和播放视频按照上面的方法,在Heroku上安装好OneManager,你会得到类似于这样的网址:wzfoumm.herokuapp.com,由于Heroku免费空间打开速度比较慢,我们一般会选择CloudFlare加速。在CloudFlareWorkers中新建一个应用,添加以下代码:addEventListener("fetch",event=>{leturl=newURL(event.request.url);url.hostname="wzfoumm.herokuapp.com";letrequest=newRequest(url,event.request);event.respondWith(fetch(request))})上述代码中记得修改你的二级域名。此时打开你的CloudFlareWorkers二级域名类似:wzmm.wzfou.workers.dev。1.2绑定自己的域名进入到CloudFlare的域名设置中,点击Worker。然后是点击添加路由,Worker那里指定你刚刚创建的CloudFlareWorkers应用,规则如下图:如下图我们已经成功给自己的CloudFlareWorkers绑定了自己域名。做好DNS域名解析。如果你用的CloudFlarePartner这类的自定义IP服务,直接到你的CloudFlare第三方DNS解析服务那里设置好域名的CNAME记录,记录值就是CloudFlareWorkers的二级域名。最后,你会得到CloudFlarePartner生成的CNAME或者A记录值,现在你可以到你的域名DNS解析服务中添加记录了。打开你的自定义域名就可以看到访问成功了:https://wzpan.wzfou.net/。关于CloudFlare第三方DNS解析服务教程参考:CloudFlare免费CDN加速自定义节点-CloudFlare自选IP加快CDN速度。二、OneManager+CloudFlareWorkers直装项目:作者:https://github.com/qkqpttgf/OneManager-cfworkerskv备用:https://github.com/freehao123/OneManager-cfworkerskv演示:https://cfwzp.wzfou.workers.dev/绑定域名演示:https://cfwzp.wzfou.net/上面我们利用了CloudFlareWorkers的反代,将架构在Heroku空间上的OneManager成功绑定了自己的域名并且启用了CloudFlareCDN加速。事实上OneManager还可以直接安装在CloudFlareWorkers上。2.1Workers直装OneManager首先是进KV,添加命名空间,名字随便英文。进workers,新建,粘贴代码,保存。如下图:在workers设置中,KV命名空间绑定。变量名称填入OMKV,右边下拉选择你刚刚创建的CloudFlareWorkers。如下图:现在你可以打开你的CloudFlareWorkers二级域名了,开始安装OneManager了。你可以设置你的OneManager名称。OneManager可以添加OneDrive网盘。查看图片效果如下:2.2CloudFlareWorkers绑域名进入到你的域名Workers点击添加路由,如下图设置:然后到你的CloudFlarePartner那里设置一下DNS记录,记录值就是CloudFlareWorkers的二级域名。生成了新的CNAME记录值后,到你的域名DNS那里设置好CNAME记录即可。注意:上面的操作适合没有使用CloudFlare官方的DNS解析服务,即没有修改NS服务器的情况。否则,请直接在CloudFlare官网修改DNS解析即可。观看视频如下:三、总结OneManager+CloudFlareWorkers直装省去了Heroku空间,但是这样的架构只是主要功能可用,可以添加盘,可以刷新缓存。不可用的有:加密目录、管理操作、上传等,想要完整版的OneManager建议在免费空间上安装再配合CloudFlareCDN加速。文章出自:挖站否https://wzfou.com/onemanager-workers/,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。收藏1点赞1本文已收录到:免费空间专题日本Xrea免费空间申请与使用-优秀稳定的免费主机1GB空间免费SSL挖站否免费PHP空间申请与使用-2G空间20GB流量电信CN2GIA线路DA面板免费自建个人网站-Gridea+GitHub+Vercel傻瓜式搭建静态博客评论SSL多主题OneManager与CloudFlareWorkers部署安装-绑定域名和使用CloudFlareCDN加速分享到:Tags:CloudflareCloudFlareAnycastCloudflareCCCloudflareCDNCloudFlareDDOSCloudFlareDNSCloudFlareDNSSECCloudFlareIPCloudflarePartnerCloudflareRailgunCloudFlareWorkersCloudflare使用Cloudflare免费SSLCloudFlare安全防护Cloudflare教程CloudFlare缓存OneManagerOneManagerOneDriveOneManager-phpOneManager使用OneManager安装OneManager教程OneManager网盘OneManager阿里云盘2021年黑五经典VPS主机年度最大优惠9折-可选美国CN2GIA,日本软银,荷兰联通AS99292021年11月28日3目录列表程序整理汇总-OneDrive,阿里云盘,GoogleDrive等各大网盘目录列表程序2021年12月6日18创作不易,用心坚持,欢迎请Qi喝一杯爱心咖啡!打赏支持关于作者作者还写过Qi506Posts关于站长(Qi),2008年开始混迹于免费资源圈中,有幸结识了不少的草根站长。之后自己摸爬滚打潜心学习Web服务器、VPS、域名等,兴趣广泛,杂而不精,但愿将自己经验与心得分享出来与大家共勉。猜你喜欢已有7条评论最新最早最佳蚊子的初吻有效的避开啦heroku域名附带的跟踪器!赞!2021年12月11日01:01顶踩回复蚊子的初吻所有的视频只能下载,不能直接播放2021年12月10日11:43顶踩回复小明收起回复试用了,用的腾讯云函数结合世纪互联版onedrive,速度较快2021年12月4日19:51顶踩回复Qi(文章作者)是的,不过腾讯函数要收费。2021年12月6日20:47顶踩回复MiaoSKY收起回复老板能不能研究一个NAT小鸡非标准端口套CF的教程.https://bmvps.com/nat-vps-cloudflare-443/上面这里有个你上面那个脚本的变体,指定的是非标端口的网页地址.我自己试了下,在CF那个workers.dev的测试页面能通我的网页,但是保存后访问实际给的那个*.workers.dev的网址又不行.要是NAT小鸡非标端口能套CF,给NAT小鸡套CF扶*,在配合优选IP那可就真爽了.2021年12月3日00:50顶踩回复Qi(文章作者)好像是CF不支持这些端口,官网有说明,貌似无法突破2021年12月6日20:48顶踩回复明月登楼的博客虽然没有看懂,但还是要支持一下!2021年12月2日22:47顶踩回复快捷登录:微信QQ新浪微博Facebook帐号登录更多>>表情图片发表评论全站搜索用户中心登录签到领积分用户中心积分商城论坛BBS最新文章精选VPS主机优惠信息动态-美国韩国日本香港VPS主机优惠码(持续更新)HostkerVPS使用评价-HostkerVPS怎么样?HostkerVPS评分海星云VPS使用评价-海星云VPS怎么样?海星云VPS评分新版宝塔面板安装与使用教程-利用宝塔面板在VPS主机上搭建网站TMTHosting使用评价-TMTHosting怎么样?TMTHostingVPS评分IPLCVPS主机整理汇总-IPLC专线VPS服务器收集整理列表OLink.CloudVPS主机使用评价-OLink.Cloud怎么样?OLink.Cloud评分TinyTinyRSS最新安装与使用教程-AwesomeTTRSSDocker安装配置方法最新评论zumenbo我在免费空间,htaccess文件更新了,测试也通过了,但页面没有用webpQi是的,面板其实也麻烦。Qi要看你的Nginx规则有没有修改,他这个涉及到规则的重写,可能会导致不生效。随便起个名字吧aapanel一样收集信息。ATzzz习惯用交互,还是不要用面板了。面板还要认证。。我也是醉了。oneinstack用了好几年了。也习惯了。不会的,不懂的。google一下就明白了。zumenbo安装了WebPExpress也没显示webp格式,edge和chrome也没显示,我在用cloudflare,有关系吗Qi有些商家确实会这样做。Qi伪静态规则是不是没有设置好?jiuyi似乎这个商家不大喜欢b#b#r,因为会在vlan里面产生一堆多余流量聂素馨这家国人居然还活着……那么多年了I'M代代付在博客根目录新建了文件夹,把图床文件解压缩在这个文件夹里面,安装完成一切正常,但是为什么后台登录后自动跳转到了博客的登录后台?而不是正常的跳转到图床的管理后台?C非常赞同!聂素馨还是弃用面板的好,隐私高于一切iwef不用的话,国内好用的面板基本上没有呀。iwefaapanel不是合并到宝塔了?大家在看热门最新最热CloudCone美国CN2VPS主机性能与速度评测-按时长计费,线路速度与使用体验2019年9月5日阿里云日本VPS主机速度性能评测-日本软银SoftBank\香港NTT线路2018年6月25日开箱即用-简洁实用的ImgURL图床相册程序和Zdir目录列表程序(文件管理器)2018年7月7日放弃免费Inoreader自建RSS阅读器—TinyTinyRSS和FreshRSS2019年4月22日2018年双11各大主机商优惠促销活动汇总-便宜VPS主机\独立服务器2018年11月5日独立服务器使用IPMI安装操作系统图文教程-iKVM使用,硬盘分区和挂载ISO2018年11月1日热点关注IPLCVPS主机整理汇总-IPLC专线VPS服务器收集整理列表2022年5月20日byQi4123456PrevNext关注我们1055读者563成员897粉丝1650群员我们的故事站长Qi自营主机评分榜单1AmazonEC2VPS(5人打分)2Linode(16人打分)3腾讯云CVM(14人打分)4GCPVPS(6人打分)5经典VPS(25人打分)6Kdatacenter(9人打分)7DigitalOcean(7人打分)8阿里云VPS(16人打分)月活跃用户1po502分2Qi370分3saber292分4Fungit278分5kof21411252分6李荣249分7白色卡片248分8hicebat248分9D425824248分10低调248分本文所在专题:日本Xrea免费空间申请与使用-优秀稳定的免费主机1GB空间免费SSL挖站否免费PHP空间申请与使用-2G空间20GB流量电信CN2GIA线路DA面板免费自建个人网站-Gridea+GitHub+Vercel傻瓜式搭建静态博客评论SSL多主题OneManager与CloudFlareWorkers部署安装-绑定域名和使用CloudFlareCDN加速关于本站挖站否(WZFou.com),域名取自挖(Wa)站(Zhan)否(Fou),即挖掘建站的意思。网站旨在分享建站教程、资源、经验与技巧,内容将涵盖VPS、服务器、域名、DNS、SSL、CDN等等。关于站长(Qi),2008年开始混迹于免费资源中,结识了不少的草根站长。后来自己摸爬滚打开始潜心学习Web服务器、VPS、域名等新鲜事物,同时也愿意将自己经验与做法分享出来,与大家共同进步。联系方式QQ:798558110;Q群:212262901微信号:iamqimm邮箱:[email protected]更多:Qi朋友圈,联系站长Qi的故事2017开始坚持、2018冷暖岁月2019改变自己、2021如愿以偿2022自言自语Qi下服务Ping监控:VPS主机\服务器线路监控CDN平台:CloudFlareCDN管理平台其云否:便宜的美国CN2VPS主机优惠否:VPS主机服务器等优惠码免费空间:DA面板和CN2高速线路贴图否:免费高速的图片外链图床论坛BBS:挖站否论坛分享资源信息VPS评分:各大VPS主机使用评分随机文章实用工具替代Evernote免费开源笔记Joplin-网盘同步笔记历史版本Markdown可视化2020年9月9日VPS主机经典CN2GIAVPSE主机终身6.58%折扣-1G内存年付约$160美元2020年9月17日VPS主机DigitalOcean云VPS主机性能与速度评测-价格便宜性能好但速度一般2017年11月8日©Copyright2017-2019.挖站否-挖掘建站的乐趣!Allrightsreserved.网站首页VPS主机VPS评分免费空间用户登录
OneManager是一个非常优秀的网盘目录列表程序,支持挂载Onedrive、阿里网盘、GoogleDrive等网盘,可以直接在线预览图片、在线播放视频,非常适合共享Onedrive、阿里网盘、GoogleDrive网盘中的文件,当然OneManager也可以对文件夹或者目录设置密码,限制共享权限。OneManager对于架构平台要求不高,你可以将OneManager安装在任意PHP空间上,如果没有自己的PHP空间,你也可以将OneManager安装在Heroku免费空间上,或者是直接架构在腾讯无服务器云函数、华为云函数工作流、阿里云函数计算、百度云函数计算上,快速搭建你的网盘存储中心。OneManager网盘目录列表程序支持在线预览图片,也可以播放视频,本篇文章就来分享一下OneManager网盘目录列表程序的安装与使用方法,更多的自建网盘或者网盘存储服务还有:ZPan自建网盘存储-基于各大云存储商的网盘系统zpan安装使用教程ZFile自建免费公共网盘服务-支持阿里云OSS,OneDrive,FTP,S3协议等云存储Aliyundrive阿里云盘-不限速免费网盘-支持分享,手机相册和微信/QQ群文件自动备份PS:更新记录.1、OneManager与CloudFlareWorkers还可以结合部署,免去了找空间的麻烦:OneManager与CloudFlareWorkers部署安装-绑定域名和使用CloudFlareCDN加速。2021.12.72、想要找速度快的日本VPS主机,可以试试这家:LOCVPS日本VPS主机性能和速度测评-三网BBTEC软银线路速度快。2021.11.21一、Heroku部署OneManager网站:项目:https://github.com/qkqpttgf/OneManager-php空间:https://www.heroku.com演示:https://wzfoumm.herokuapp.com/在Heroku上部署OneManager是推荐的搭建方式,因为Heroku是免费的,并且还提供免费的二级域名,非常适合没有自己的PHP空间朋友。1.1Heroku连接GitHub进入到GitHub的OneManager项目,先Fork一下项目。打开Heroku,没有账号的可以先注册一个Heroku账号,点击添加新的应用,填写你的APP名称,地点就选美国。进入到“Deploy”选项,点击连接你的GitHub。在下方搜索OneManager-php。然后在下方激活自动更新。最后就是点击开始部署OneManager到Heroku了。1.2安装OneManager成功将OneManager部署到Heroku后,打开Heroku生成的二级域名,例如:https://wzfoumm.herokuapp.com/。点击开始安装。点击“新建API”。然后进入到Heroku的API界面,点击显示APIKey,复制保存。继续返回到OneManager的安装界面,填写你刚刚得到的API,然后设置一个OneManager密码。1.3添加OneDrive现在你可以用你刚刚设置的密码登录到OneManager,然后就是点击添加OneDrive。设置一个名称,然后选择OneDrive是国际版还是国内的世纪互联版,这里建议你新建一个应用的ID和密钥,方法请参考1.4步骤。当然你也可以直接使用OneManager默认的,不过默认的可能因请求过多的原因出现一些问题。然后使用你的OneDrive登录,授权,最后选择使用OneDrive即可,完成。如下图:1.4申请OneDriveAPI(可选)这一步为可选项。如果你用的是国际版,请访问https://portal.azure.com,如果是世纪互联版,请访问:https://portal.azure.cn,登录自己要注册自己的api的账号。找到AzureActiveDirectory并进入,然后点击左侧的应用注册。设置一个任意名称,重定向URL地址为:https://scfonedrive.github.io/,账户类型选择任何组织目录。如下图:(点击放大)创建完成后,在概述中就可以看到API的详情了,这里请记下“应用程序(客户端)ID”。点击“证书和密码”,这里你还需要新建一个客户端密码。为你的客户端密码设置一个有效期,完成后你就得到你的密钥了,记得保存下来。开放权限。点击左侧的API权限,添加权限。点击MicrosoftGraph。然后点击里面的委托的权限。找到里面的Files类别里的Files.ReadWrite.All,勾选之后点击添加权限。这个是OneDriveAPI权限。现在你就可以到OneManager的API添加ID和密钥了,也就你刚刚记下的那两个。1.5添加阿里云盘OneManager添加阿里云盘和OneDrive类似,不过需要填写refresh_token。首先登陆阿里云盘:https://www.aliyundrive.com/drive,打开开发者工具,切换到Application选项卡,点开Localstorage,会有一个token项,点开就可以看到refresh_token了。二、PHP空间部署OneManager下载:https://github.com/qkqpttgf/OneManager-php/archive/master.zip演示:https://cn2host.wzfou.net/pan/如果你有自己的PHP空间,你可以直接将OneManager程序包下载下来,然后上传你的PHP空间根目录下,这里以挖站否免费PHP空间来作为演示。上传后,直接打开你的域名,就可以看到OneManager安装界面了。建议你选择Apache空间,OneManager自带了.htaccess,nginx的话还需要自己转换规则。同时要将.data/config.php权限设置为666。设置一个管理员密码。接下来你就可以开始添加OneDrive或者阿里云盘了,添加OneDrive直接参考上面的步骤。三、OneManager使用效果OneManager挂载OneDrive或者了阿里云盘可以直接预览图片。你也可以观看视频。OneManager可以直接上传文件。也可以对网盘中的目录进行加密或者管理。四、总结OneManager是一个非常优秀的网盘目录程序,下载时,由程序解析出直链,浏览器直接从微软Onedrive服务器下载文件,服务器只消耗与微软通信的少量流量。上传时,由程序生成上传url,浏览器直接向微软Onedrive的这个url上传文件,服务器只消耗与微软通信的少量流量,可以说OneManager挂载OneDrive或者阿里网盘是分享大文件的绝佳选择。另外,如果你在OneManager挂载OneDrive出现权限拒绝的情况,如下图:则有可能是你的OneDrive冻结了,你需要先到OneDrive解冻。
OneManager是什么这是一个利用微软onedriveapi将onedrive目录映射成一个云盘的程序,类似的程序有很多,比如OneIndex、Pyone、OnePoint等等。这个程序的特点是支持多种onedrive类型,可以部署在vps,heroku,以及腾讯云scf上。部署教程参考项目readme说明,网上一些博客也有不少教程,这不是本文的重点,本文主要讲的是部署好后的设置问题。部署成功后在设置->首页里添加相应的盘,可以添加多个盘,同一个盘也可以添加多次。平台变量登录后,在管理>设置里有一些自定义设置,有些人不清楚这些设置是干嘛的,这可以理解,毕竟项目的说明写的太简单了。注意本文的操作都是针对程序默认主题来说的,其他主题由于是第三方人员开发,不保证所有功能都能正常使用。adminloginpage自定义登录地址,设置后就会隐藏登录按钮(有些主题本来就没有登录按钮),登录时需要手动在网盘地址后加上?你设置的值进行登录。比如设置为abc,那么你只能通过http://xxx.com/xxx?abc地址来登录。所以一旦设置就要记住你设置的值,不然连你自己也没法知道登录地址那就麻烦了。这个设置是为了防止别人通过默认的登录界面尝试登录你的网盘,设置本项后只要猜不到登录界面,即使别人知道登录密码也没用,多一道防护墙,让网盘更安全。autoJumpFirstDisk设置点击网盘标题时跳转到绑定的第一个盘还是当前绑定的网盘根目录。background自定义背景图片,填入一个图片的url地址,因为图片加载通常需要更多时间,为了速度考虑不建议放入大体积图片。backgroundm手机端显示的背景图片地址。customCss设置自定义css的地方,这里设置的css会作用于网盘所有页面。比如我想隐藏语言选项框:<style>.changelanguage{display:none}</style>同时隐藏复制下载链接按钮<style>.filebutton{display:none}.changelanguage{display:none}</style>customScript设置自定义js,会作用于所有页面。比如设置http重定向到https:<scripttype="text/javascript">vartargetProtocol="https:";if(window.location.protocol!=targetProtocol)window.location.href=targetProtocol+window.location.href.substring(window.location.protocol.length);</script>customTheme通过url的方式引用html主题,比如你可以通过设置下面的地址来使用我的主题。https://cdn.jsdelivr.net/gh/kizx/onemoe-theme/onemoe.htmldisableChangeTheme设置为1后游客浏览时将不显示右下角的主题切换功能。disableShowThumb设置为1后将不显示缩略图的按钮和功能,对于云函数用户来说,建议设为1来关闭该功能,因为该功能可能点一下就是一分钱。hideFunctionalityFile设置为1后,游客浏览网盘时就会看不到read.md,head.md,head.ofm,foo.omf这些文件,这些文件是干嘛的后面会说。passfile设置密码文件名,比如这里设置为password.txt,那么在某一个目录下新建一个password.txt文件,其中写入密码,这样任何人在浏览这个网盘目录时都需要输入相应密码后才能访问。sitename设置网站名称。theme切换主题。timezone设置时区,国内可设置为8。每个盘独立变量diskname多盘在网盘界面显示的名称。domain_path当绑定多个域名时,可以使不同域名打开时访问不同目录。当然如果你只有一个域名也可以用,通过这种方式可以使当前域名访问一个指定子目录,和后面的public_path起到一样的作用。下面是两个域名的设置方法,中间用|隔开,如果有多个域名只设置一个域名时,未设置的域名好像也会只访问该目录,要访问根目录dirname设置为/。domain1.com:/dir1name|domain2.com:/dir2namedownloadencrypt设置为1时启用该功能,这样在设置了密码的目录下的文件虽然无法在网页端浏览,但可以通过具体的文件链接进行下载。guestup_path设置图床路径或者叫游客上传路径,设置后游客只能看到上传按钮看不到目录下的文件。public_path设置该盘的显示的根目录,默认为/,换个说法就是可以显示指定的文件夹,默认显示全部。比如我们只想将网盘下的public文件夹内容作为网盘,可以设置为/public/。有了这个功能,即使只有一个onedrive账号,我们也可以通过重复绑定同一个账号来生成多盘,然后每个盘的public_path设置为不同的路径,这样可以将一个盘的功能分开。还有一种特殊情况是我既想让游客上传文件,又想让游客看见上传后的文件目录,目前就只能通过这种方法将该目录设置到两个盘,一个盘作上传,一个盘作目录展示。进阶设置设置网站ico图标将favicon.ico图片放在网盘根目录下,如果你设置了多盘的的话,则需要在每个盘的根目录下都放置一个favicon.ico文件,新版的html主题只需要在绑定的第一个盘下面设置就行了。当然你也可以在customCss或customScript中进行全局设置:<linkrel="icon"href="https://cloud.tencent.com/favicon.ico"type="image/x-icon">这里我使用了腾讯云的网站图标,你应该改为自己的favicon.ico图片地址。刷新自动切换背景图片这个是通过设置特殊的图片api来实现的,这些api每次刷新都会返回一张不同的图片,将后台background设置为这些api的url即可。网上类似的api有很多,以下是群友收集的免费图片api:https://api.ixiaowai.cn/api/api.php(二次元动漫)http://www.dmoe.cc/random.php(二次元随机图)https://api.ixiaowai.cn/mcapi/mcapi.php(menhera酱)https://api.ixiaowai.cn/gqapi/gqapi.php(风景)https://acg.yanwz.cn/wallpaper/api.php(二次元随机图)利用index.html设置自定义页面如果一个目录下有名为index.html的文件,则直接显示该文件,可以利用这个功能设置一个自定义页面或者用于隐藏一个特定页面,相当于部署了一个静态页面。设置顶部和底部说明文字在需要展示顶部说明的目录下新建一个head.md文件,在文件里写入说明内容即可,这是一个markdown文件,可以使用markdown语言进行书写。底部说明说明文字对应的是readme.md文件,规则与顶部文字一样。利用head.omf设置一言head.omf作用和head.md一样,区别是他不支持markdonw语言,但是支持html语言,可以写入html、css、js内容。在想展示一言的目录新建head.omf文件,然后写入以下内容:<pid="hitokoto">:D获取中...</p><script>fetch('https://v1.hitokoto.cn').then(response=>response.json()).then(data=>{consthitokoto=document.getElementById('hitokoto')hitokoto.innerText=data.hitokoto}).catch(console.error)</script>以上是使用了https://developer.hitokoto.cn/的一言接口,你也可以尝试更换其他接口或者自建接口。利用foot.omf设置Valine评论使用Valine需要先注册LeanCloud并实名认证,然后新建应用获取AppID和AppKey。具体过程参考:https://valine.js.org/quickstart.html然后新建foot.omf,写入以下内容(注意填入替换自己的AppID和AppKey):<scriptsrc='//unpkg.com/valine/dist/Valine.min.js'></script><divid="vcomments"></div><script>newValine({el:'#vcomments',appId:'你获取的AppID',appKey:'你获取的AppKey'})</script>ps:上面的js用的是unpkg的cdn,国内速度完全不行,建议改用jsdelivr的cdn<scriptsrc='//cdn.jsdelivr.net/npm/valine/dist/Valine.min.js'></script>展示Demo见:https://pan.2bboy.com/home/如果对样式不满意,建议直接在omf文件写css美化。设置动态背景这里的动态背景指我们经常在一些网页见到的那种下雪、粒子线条、彩条等动态背景,一般是通过js实现的,可以自己在网上找找现成的教程,js我不会,这里只展示一种我找到的动态彩条背景。我将下面的代码写在了foot.omf中,可以访问https://pan.2bboy.com/home/test/colored-ribbon/查看其效果。<scriptsize="90"alpha="0.5"zIndex="0"src="https://pan.2bboy.com/ppx/test/ribbon.js"type="text/javascript"charset="utf-8"></script>其中最重要的是ribbon.js这个js文件,我将他放在网盘目录下,你应该下载该文件放在自己的云空间里,然后替换引用的地址。如果将代码放在omf文件里则只能在当前目录有效果,设置在后台的customScript中就可以全局生效了。当然只要你懂点js,利用omf文件可以玩出很多东西,比我这里有一些示例:https://pan.2bboy.com/home/test/美化自定义登录页面修改common.php相应地方,添加style和br$html.='<style>body{background-image:linear-gradient(60deg,#343b440%,#485563100%);background-attachment:fixed;color:#343b44}body>div{position:absolute;text-align:center;background-color:rgba(221,221,221,.5);border-radius:20px;width:75vw;max-width:500px;height:350px;margin:auto;top:25%;bottom:50%;left:0;right:0}body>div:hover{box-shadow:3px3px6px3pxrgba(0,0,0,.3)}h4{font-size:40px}input{font-size:20px;margin:2%auto;border:#343b442pxsolid;border-radius:10px;padding:10px;height:50px;text-align:center}input:last-of-type{color:#343b44;height:50px;width:80px;font-weight:800}input:hover:last-of-type{cursor:pointer;color:#ddd;background-color:#485563}</style><body><div><center><h4>'.getconstStr('InputPassword').'</h4><formaction=""method="post"><div><inputname="password1"type="password"/></br><inputtype="submit"value="'.getconstStr('Login').'"></div></form></center></div>';提示游客上传文件时只能单个上传,不能批量上传。由于scf的缓存系统,在scf上进行某项改动后有时候不会立马生效,或者刷新后时而生效时而不生效,只要多等一会儿,等旧缓存自己失效就好了。php格式的主题为旧版主题,许多功能不支持,html格式的主题为新版主题,不同主题的作者更新频率和支持功能都可能不同,功能测试请以最新版本的默认主题为准。
在线翻译复制而成!安装安装文件应用程序非常简单,因为它只是一个文件。只需下载最新的文件index.php,将其放入您要查看或管理的文件夹中并加载到浏览器中。下载下载最新的文件应用index.php放入您要查看或管理的文件夹。将您的浏览器指向它上传的位置。重命名index.php您可能已经有一个文件index.php,或者您只是想通过不同的url访问Files应用程序。只需重命名并加载到浏览器中index.php。anythingyouwant.php存放_files路径首次运行后,Files应用程序将创建一个文件夹_files,用于存储缓存、配置和可选的包含文件。阅读更多服务器诊断?check=1您可以通过附加到URL来测试您的PHP和服务器的各种功能[参见演示]配置可选配置尽管有许多配置选项,但除非您确实需要,否则无需进行更改。在大多数情况下,您只需将文件应用程序放入任何文件夹并使用默认选项即可。还有高级javascript配置选项和CSS样式选项。config.php首次运行文件应用程序后,_files/config/config.php将创建配置文件,并注释掉所有默认配置选项。_files/config/config.php<?php//Uncommenttheparametersyouwanttoedit.returnarray(//'root'=>'',//'start_path'=>false,//'username'=>'',//'password'=>'',//'load_images'=>true,//'load_files_proxy_php'=>false,//'load_images_max_filesize'=>1000000,//'image_resize_enabled'=>true,//'image_resize_cache'=>true,//'image_resize_dimensions'=>320,//'image_resize_dimensions_retina'=>480,//'image_resize_dimensions_allowed'=>'',//'image_resize_types'=>'jpeg,png,gif,webp,bmp',//'image_resize_quality'=>85,//'image_resize_function'=>'imagecopyresampled',//'image_resize_sharpen'=>true,//'image_resize_memory_limit'=>128,//'image_resize_max_pixels'=>30000000,//'image_resize_min_ratio'=>1.5,//'image_resize_cache_direct'=>false,//'folder_preview_image'=>true,//'folder_preview_default'=>'_filespreview.jpg',//'menu_enabled'=>true,//'menu_show'=>true,//'menu_max_depth'=>5,//'menu_sort'=>'name_asc',//'menu_cache_validate'=>true,//'menu_load_all'=>false,//'menu_recursive_symlinks'=>true,//'layout'=>'rows',//'sort'=>'name_asc',//'sort_dirs_first'=>true,//'sort_function'=>'locale',//'cache'=>true,//'cache_key'=>0,//'storage_path'=>'_files',//'files_exclude'=>'',//'dirs_exclude'=>'',//'allow_symlinks'=>true,//'title'=>'%name%[%count%]',//'history'=>true,//'transitions'=>true,//'click'=>'popup',//'click_window'=>'',//'click_window_popup'=>true,//'code_max_load'=>100000,//'topbar_sticky'=>'scroll',//'check_updates'=>false,//'allow_tasks'=>false,//'get_mime_type'=>false,//'context_menu'=>true,//'prevent_right_click'=>false,//'license_key'=>'',//'filter_live'=>true,//'filter_props'=>'name,filetype,mime,features,title',//'download_dir'=>'zip',//'download_dir_cache'=>'dir',//'allow_upload'=>false,//'allow_delete'=>false,//'allow_rename'=>false,//'allow_new_folder'=>false,//'allow_new_file'=>false,//'allow_duplicate'=>false,//'allow_text_edit'=>false,//'demo_mode'=>false,//'upload_allowed_file_types'=>'',//'upload_max_filesize'=>0,//'upload_exists'=>'increment',//'popup_video'=>true,//'video_thumbs'=>true,//'video_ffmpeg_path'=>'ffmpeg',//'video_autoplay'=>true,//'lang_default'=>'en',//'lang_auto'=>true,);复制编辑配置要编辑选项,请在任何编辑器中打开config.php文件并找到要更改的属性。//'root'=>'',复制通过删除取消注释选项//,更改值并保存:'root'=>'../different/path',复制我可以直接在index.php中编辑配置选项吗?您可以直接在index.php中编辑配置选项,但如果/当您升级Files应用程序时,更改将会丢失。仅当您的文件应用程序是临时/非持久性时才执行此操作。配置选项root分配加载文件和目录的根路径。使用默认空''值,root是当前目录。路径可以是相对的或绝对的。例子:'root'=>'',//defaultcurrentdirectory,sameas'./''root'=>'content',//sub-directory'content',sameas'./content''root'=>'../',//parentdirectory'root'=>'/var/user/eddie/',//absolutepathfromserverroot复制start_path分配加载到视图中的第一个目录,默认为根目录。它可以是相对路径或绝对路径,但目录必须在root目录内。'start_path'=>'',//startpathissameasroot'start_path'=>'galleries/birds',//customstartpathrelativetoapp复制username添加用户名和密码以通过登录保护您的文件应用程序。'username'=>'myusername',复制password添加用户名和密码以通过登录保护您的文件应用程序。如果您不希望密码在PHP文件中暴露,您可以使用我们的md5()哈希工具来加密您的密码。'password'=>'mypassword',//non-encrypted'password'=>'$2y$10$KGVfb/j9GyxQYha6bQtYEuredsqfEMs7FQEyuoEFEgIRQAdb9gQES',//encrypted复制load_images加载预览图像。如果禁用,图标将代替图像显示。'load_images'=>true,//true|false复制load_files_proxy_php如果无法通过URL访问图像和文件,则强制通过PHP代理加载。'load_files_proxy_php'=>false,//true|false复制load_images_max_filesize直接加载到画廊的最大图像文件大小。如果图像文件大小超过此值,则会显示文件图标。此选项可用于防止大量图像直接加载到布局中,并且仅在您禁用image_resize_enabled.'load_images_max_filesize'=>1000000,//1000000bytes~1mb复制image_resize_enabled允许调整加载到画廊中的图像大小,强烈建议这样做。通常应与image_resize_cache启用一起使用。如果禁用,将加载原始源图像,这可能会很慢'image_resize_enabled'=>true,//true|false复制image_resize_cache允许缓存调整大小的图像,以显着提高连续访问的加载速度。调整大小的图像通常会缓存在您的storage_pathat中_files/cache/images/*。'image_resize_cache'=>true,//true|false复制image_resize_dimensions默认调整大小的图像尺寸。默认320是可见质量和文件大小之间的良好平衡。'image_resize_dimensions'=>320,复制image_resize_dimensions_retina调整高密度(视网膜)屏幕的图像尺寸。这使您可以为HiDPI屏幕提供更高质量的图像,但代价是文件大小稍大,缓存文件更多。如果要禁用它,请将此选项设置为0。'image_resize_dimensions_retina'=>480,复制image_resize_dimensions_allowed除了两个默认值之外,允许的调整大小尺寸的逗号分隔列表。不直接在文件应用程序中使用,但如果您想为使用文件的其他应用程序(例如嵌入应用程序)配置额外的图像大小,则很有用。例如“640、800、1024”。'image_resize_dimensions_allowed'=>'',//empty,onlyimage_resize_dimensionsandimage_resize_dimensionsallowed'image_resize_dimensions_allowed'=>'640,800,1024',//additionalresizedimensions[640,800,1024]allowed复制image_resize_types要调整大小的图像类型的逗号分隔列表。例如,如果您想排除PNG/GIF图像以保留透明度和动画,这很有用。'image_resize_types'=>'jpeg,png,gif,webp,bmp',复制image_resize_quality调整大小图像的JPG压缩级别。'image_resize_quality'=>85,复制image_resize_function在imagecopyresampled(更平滑)和imagecopyresized(更快)之间进行选择。差异很小,但是如果您想在不使用图像调整大小缓存时更快地调整大小,则可以使用imagecopyresized。'image_resize_function'=>'imagecopyresampled',复制image_resize_sharpen创建更清晰(不太模糊)的预览图像。'image_resize_sharpen'=>true,复制image_resize_memory_limit调整大图像大小时临时增加PHP内存限制(如果需要)。默认值设置为128MB,这允许将图像大小调整到~6000像素。如果您的默认PHPmemory_limit已经高于指定的值,则它将无效。'image_resize_memory_limit'=>128,//number复制image_resize_max_pixels设置调整图像大小时允许的最大像素(尺寸)。默认值为30000000(30兆像素),它允许将图像大小调整到大约6000x5000像素。此选项可防止服务器尝试调整图像大小超出功能和/或防止性能下降。'image_resize_max_pixels'=>30000000,//number复制image_resize_min_ratio图像调整大小目标尺寸与源图像尺寸之间的最小比率差异。如果源图像仅比调整大小目标大X倍,则将使用源图像。如果源仅比调整大小的目标稍大,则创建调整大小的图像是没有意义的。'image_resize_min_ratio'=>1.5,//number复制image_resize_cache_direct将尝试绕过PHP代理将缓存的调整大小图像的直接路径加载到图库中。可能会导致更快的图像加载和浏览器缓存。但是,如果启用此选项并删除图像缓存,则最终可能会丢失图像文件,因为您绕过了检查缓存调整大小图像是否存在的PHP代理。如果启用此选项并且您删除了图像缓存,您可能需要增加cache_key.'image_resize_cache_direct'=>false,复制folder_preview_image尝试为所有文件夹加载预览图像。这在大型文件夹和/或慢速服务器上可能会很慢。'folder_preview_image'=>true,复制folder_preview_default如果文件夹中存在此文件名,请始终将此文件名优先作为文件夹预览图像。如果您想为某些文件夹分配特定图像,或者如果您想分配隐藏的预览图像,或者如果您只是想避免扫描每个目录以将第一张图像用作预览的性能损失,这很有用。'folder_preview_default'=>'_filespreview.jpg',复制menu_enabled打开或关闭左侧文件夹菜单。您仍然可以在主视图区域内导航文件夹。*如果根目录不包含任何文件夹,菜单将始终被禁用。'menu_enabled'=>true,复制menu_show切换左侧文件夹菜单默认展开或折叠。此选项对小屏幕(移动设备)无效,默认情况下菜单始终折叠。浏览器在切换时会记住该值,并且始终默认为菜单所处的最后状态。'menu_show'=>true,复制menu_max_depth分配递归文件夹的最大深度以加载到左侧菜单中。这是防止将无限级别的文件夹加载到菜单中的预防措施,这对于大型目录结构可能会很慢且效率低下。用户仍然可以直接从视图区域导航到更深的文件夹级别。'menu_max_depth'=>5,复制menu_sortname_asc使用选项、name_desc和决定左侧文件夹菜单的排序date_asc方式date_desc。'menu_sort'=>'name_asc',//name_asc,name_desc,date_asc,date_desc复制menu_cache_validate启用后,将验证菜单缓存以确保它与实际文件夹结构匹配。这种机制通常是必要的,以确保您所做的任何更改(新文件夹等)与菜单缓存文件相比得到验证。如果禁用,菜单将加载更快,但缓存仅针对根和根子文件夹进行验证。如果您有一个沉重但持久(不变)的文件夹结构,并且希望菜单快速加载,此功能可能很有用。如果启用并且您在子文件夹(新文件夹)中进行了更改,您将需要删除菜单缓存_files/cache/menu/*或增加选项cache_key。'menu_cache_validate'=>true,复制menu_load_all启用后,菜单中的所有文件夹都将预加载。单击菜单中的项目时,页面将立即显示而无需加载。此功能对于持久画廊和/或简单的根文件夹结构很有用。'menu_load_all'=>false,复制menu_recursive_symlinks在主菜单中列出符号链接的子目录。可能会导致无害的菜单循环或菜单中的重复项。'menu_recursive_symlinks'=>true,复制layout选项列表、图像列表、块、网格、行或列的默认画廊布局。布局还通过顶部栏布局下拉菜单进行控制,在这种情况下,它将覆盖默认布局。'layout'=>'rows',//list,imagelist,blocks,grid,rows,columns复制sort根据选项名称、日期、文件大小和种类(文件类型)按升序或降序对文件进行默认排序。排序还通过顶部栏排序下拉菜单进行控制,在这种情况下,它将覆盖默认排序。'sort'=>'name_asc',//name_asc,name_desc,date_asc,date_desc,filesize_asc,filesize_desc,kind_asc,kind_desc复制sort_dirs_first启用后,文件夹与文件混合时总是首先显示。'sort_dirs_first'=>true,复制sort_function分配用于对文件名进行排序的排序函数。使用默认locale选项,排序由JavascriptlocaleCompare()处理,它对cAsE不敏感的编号名称[2name<10name]进行排序,并根据浏览器区域设置解析unicode[èáø]。或者,basic排序稍微快一些,但可能无法正确解析编号名称和unicode。您还可以指定一个locale,它决定了用于localeCompare()排序的语言。'sort_function'=>'locale',//'locale','basic','[locale]'复制cache启用后,将为菜单和文件夹创建JSON缓存文件。强烈建议这样做,因为它允许菜单和文件夹在首次访问后加载得更快。缓存通常在_files/cache/*.如果您不希望“文件”应用创建和缓存文件,可以禁用此选项。'cache'=>true,复制cache_key缓存数据与cache_key进行了验证。虽然缓存通常会自动更新,但是如果你想强制缓存刷新,你可以增加cache_key的数量。'cache_key'=>0,复制storage_path定义Files应用程序将在何处存储缓存、配置和其他应用程序数据。默认设置为_files,这意味着所有数据都将存储在_files/*相对于应用程序的文件夹中。您通常不需要更改此值,除非您想将数据存储在不同的位置,或者如果您有多个共享同一存储的文件应用程序。存储路径可以是绝对的,也可以是相对于应用程序的。'storage_path'=>'_files',复制files_excludePHP正则表达式通常用于排除或仅包含某些文件类型和文件夹。正则表达式应用于不带路径的文件名(basename)。您可以在phpliveregex.com测试正则表达式。'files_exclude'=>'',//emptydefault,nofilesareexcluded'files_exclude'=>'/\.(pdf|jpe?g)$/i',//excludesallfilesthatendwith.pdf,.jpegand.jpg/caseinsensitive复制dirs_exclude用于排除某些路径和文件夹的PHP正则表达式。正则表达式应用于相对于根目录的文件夹路径。'dirs_exclude'=>'',//emptydefault,nofoldersareexcluded'dirs_exclude'=>'/\/eleph|\/football(\/|$)/i',//excludedirsthatstartwith"eleph"anddirsthatmatch/football/*复制allow_symlinks允许“文件”应用显示和遵循符号链接。大多数情况下都可以正常工作,但是如果您的符号链接指向具有不同权限的磁盘上的位置或指向不在网站文档根目录中的位置,您可能会遇到问题。'allow_symlinks'=>true,复制title分配自定义页面<title>。您可以包含变量%name%和。如果您需要高级行为,则可以使用高级javascript中的函数。%path%%count%_c.config.title'title'=>'%name%[%count%]',//'title'=>'Mywebsitename›%name%[%count%]',//examplewithcustomstringprepended复制history启用后,浏览器将在您浏览文件夹时更改URL?path/to/folder。这也允许在共享URL时直接深度链接到文件和文件夹。'history'=>true,复制transitions在页面之间导航时启用转换。'transitions'=>true,复制click选择单击列表中的项目时触发的方法。默认值“popup”将适用于所有图像/视频文件,对于非图像文件回退到“modal”。'click'=>'popup',//popup,modal,download,windowormenu复制click_window单击时要在新窗口中直接打开的文件扩展名的逗号分隔列表。用于轻松查看PDF、HTML和文本文件,而不是先在文件应用程序中打开预览。'click'=>'',//empty,allfiletypesopeninclickdefault'click'=>'pdf,html',//OpensPDFandhtmlinnewbrowserwindow,allowingthemtobepreviewed复制click_window_popup从click_window弹出式浏览器窗口中打开浏览器窗口,覆盖当前窗口。在预览PDF、html和文本类型文档时很有用。*不适用于移动设备,新窗口将正常打开。'click_window_popup'=>true,复制code_max_load在代码查看器/编辑器中加载和预览的文本/代码文件的最大文件大小。这样做的目的是防止大量文本文件导致代码语法高亮显示界面迟钝。'click_window_popup'=>100000,//default100000~100kb复制topbar_sticky选择顶栏如何将自己附加到屏幕。默认值scroll将在向上滚动时将顶部栏附加到屏幕顶部,true将导致顶部栏始终保持固定,同时false将禁用固定顶部栏并恢复正常行为。'topbar_sticky'=>'scroll',//'scroll',true,false复制check_updates检查文件应用程序更新,如果有可用更新,则在顶部栏中显示铃铛图标,允许用户“更新”、“下载”或“阅读更多”。'check_updates'=>false,复制allow_tasks用于管理缓存的任务插件。*尚未记录。'allow_tasks'=>null,复制get_mime_type设置为true以从服务器/PHP(慢)而不是从文件扩展名(更快)检测文件mime类型。这应该不是必需的,除非您的文件类型具有不正确的文件扩展名,或者出于安全原因您想要验证服务器上的文件类型。'get_mime_type'=>false,复制context_menu启用上下文菜单按钮和带有选项的右键单击菜单。'context_menu'=>true,复制prevent_right_click启用以阻止敏感项目(图像、列表项、菜单)上的浏览器右键单击菜单。'prevent_right_click'=>false,复制license_key在此处插入许可证密钥以解锁功能并删除许可证弹出窗口。'license_key'=>'XX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX',复制filter_live对键盘输入进行实时搜索过滤。如果禁用,输入过滤器需要键盘返回或取消聚焦才能触发,如果您在文件夹中有1000个文件并希望防止不必要地触发慢速过滤,这可能很有用*不适用于移动设备,它总是在“搜索”时触发或键盘隐藏。'filter_live'=>true,复制filter_props过滤时要使用的文件属性,属性越多处理越慢。属性名称、文件类型和mime适用于所有文件类型,而特征、标题、标题、描述、创建者、信用、版权、关键字、城市、子位置和省州可用于具有IPTC元的图像文件。'filter_props'=>'name,filetype,mime,features,title',//default'filter_props'=>'name,filetype,mime,features,title,headline,description,creator,credit,copyright,keywords,city,sub-location,province-state',//all复制download_dir设置为zip添加一个选项以将文件夹中的所有文件下载为zip文件。此选项需要PHPZipArchive,并且要求服务器在提供之前先将所有文件压缩到zip中(这可能会很慢,直到它被缓存download_dir_cache)。或者,设置files为直接在浏览器中下载多文件,这在桌面上可以很好地工作,而不必先在服务器上压缩文件,但在移动设备上不起作用。'download_dir'=>'zip',//'zip','files',''(disabled)复制download_dir_cachedownload_dir设置选项时,启用了创建ZIP文件的缓存zip。出于性能考虑,建议这样做,这样就无需在每次访问者点击下载时都创建zip文件。设置为直接dir存储_files.zip在当前文件夹或设置storage为存储在里面_files/zip/*。默认dir选项最有效,因为它允许文件应用程序检查zip缓存是否有效和更新,即使您更改文件夹名称也是如此。'download_dir_cache'=>'dir',//'dir'/'storage'/''/复制allow_upload允许上传文件。'allow_upload'=>false,//true|false复制allow_delete允许删除文件。'allow_delete'=>false,//true|false复制allow_rename允许重命名文件。'allow_rename'=>false,//true|false复制allow_new_folder允许创建新文件夹。'allow_new_folder'=>false,//true|false复制allow_new_file允许创建新文件。'allow_new_file'=>false,//true|false复制allow_duplicate允许复制文件。'allow_duplicate'=>false,//true|false复制allow_text_edit允许编辑文本和代码文件。'allow_text_edit'=>false,//true|false复制demo_mode启用后,将阻止所有文件管理器操作。主要用于Files应用演示。'demo_mode'=>false,//true|false复制upload_allowed_file_types允许上传文件类型的逗号分隔列表。列表可能包含部分匹配的扩展名或mime类型,例如pdf,doc,image/*.如果为空(默认),则允许所有文件类型。'upload_allowed_file_types'=>'',//default,allfiletypesareallowed'upload_allowed_file_types'=>'pdf,doc,image/*',//*.pdf,*.docandallimagetypesareallowed复制upload_max_filesize设置允许上传的最大文件大小(字节)。默认值0表示没有限制,但最大文件大小将始终受到服务器的PHPupload_max_filesize值的限制。'upload_max_filesize'=>0,//default,nolimit'upload_max_filesize'=>1000000,//maximumfilesize1000000~1MB复制upload_exists如果上传的文件名已存在于上传目标文件夹中,则决定如何处理。默认'increment'将通过附加一个数字重命名上传的文件,'overwrite'将覆盖现有文件,而'fail'将导致上传失败。'upload_exists'=>'increment',//incrementfilename,forexamplefilename.jpg=>filename-2.jpg'upload_exists'=>'overwrite',//overwriteexistingfileiffilenameexists'upload_exists'=>'fail',//uploadfailoffilenameexists复制popup_video启用后,在弹出窗口中打开视频格式,允许用户在其他弹出项目之间导航。如果禁用,视频将以简单模式打开。'popup_video'=>true,复制video_thumbs为视频文件创建缩略图。此选项需要启用FFmpeg和PHPexec()。处理视频缩略图很慢,但它们会像调整大小的图像一样被缓存'video_thumbs'=>true,//true|false复制video_ffmpeg_path用于创建视频缩略图的FFmpeg命令行路径。通常只是“ffmpeg”,但有些服务器需要FFmpeg应用程序的完整路径。'video_ffmpeg_path'=>'ffmpeg',复制video_autoplay当用户单击以在弹出窗口中打开视频时自动播放视频。'video_autoplay'=>true,复制lang_default如果浏览器语言不受支持或被lang_auto禁用,则默认界面语言。'lang_default'=>'en',复制lang_auto根据检测到的浏览器语言自动分配界面语言。'lang_auto'=>true,CSS样式多亏了CSS变量,您可以轻松更改文件应用程序中的许多样式,而无需付出太多努力。只需创建一个文件_files/css/custom.css,并包含您自己的CSS变量。例如,要从seagreen更改主要原色::root{--primary-color:deeppink;}复制结果将如下所示:--primary-color=deeppinkCSS属性您将在下面找到所有现有自定义属性的列表。:root{--primary-color:seagreen;--popup-bg:#000;--popup-placeholder-bg:#222;--popup-timer-color:white;--popup-caption-max-width:640px;--popup-caption-font-size:.9rem;--popup-caption-font-weight:300;--popup-caption-line-height:135%;--popup-caption-color--popup-caption-item-space:.35em;--popup-caption-line-clamp:3;--files-data-top:0;--files-data-display:none;--files-data-display-hover:block;--files-data-animation:opacity.2s;--grid-height:100%;--grid-font-size:14px;--list-max-width:1040px;--rows-height:auto;--rows-justify-content:space-evenly;--rows-flex-grow:1;--sidebar-width:calc(10vw+180px);--sidebar-width-small:85vw;--sidebar-width-hover:480px;--menu-font-size:16px;--menu-line-height:30px;--menu-folder-icon-size:22px;--menu-text-indent:6px;--menu-icon-toggle-opacity:0;}复制自定义CSS样式也可以包含您自己的CSS样式。但是,这需要对CSS和HTML有很好的理解,因为您最终可能会破坏界面。FFmpeg视频预览视频预览图像需要在服务器上安装FFmpeg。ffmpeg.org如果它是您自己的服务器或者您具有命令行访问权限,则可以安装此工具。如果您在共享主机上,您不太可能访问FFmpeg,但您可以随时询问您的托管服务。视频预览性能创建视频预览图像可能会很慢,这可能是因为打开视频和导航帧以提取预览图像帧的内部过程。首次创建预览后,它将被缓存,因此在连续访问时加载速度会更快。文件管理器文件管理器选项包括上传、删除、重命名、复制、编辑文本、创建新文件夹和创建新文件的功能。安全启用文件管理器功能时应该小心,因为您基本上允许用户在服务器上创建和修改文件。分配登录名是个好主意,否则您应该确保没有不受欢迎的客人可以访问。文件管理器选项在config.php中,您会发现以下选项,默认情况下全部禁用。'allow_upload'=>false,'allow_delete'=>false,'allow_rename'=>false,'allow_new_folder'=>false,'allow_new_file'=>false,'allow_duplicate'=>false,'allow_text_edit'=>false,复制上传器选项此外,您会在config.php中找到以下选项,专门用于上传器。'upload_allowed_file_types'=>'',//comma-separatedlistofalloweduploadfiletypes/empty=allowany/'jpeg,jpg,image/*''upload_max_filesize'=>0,//[bytes]/0=unlimited(butlimitedbyserverPHPupload_max_filesize)'upload_note'=>'',//includeasmalltextnoteatbottomofuploader/'Maxfilesize%upload_max_filesize%''upload_exists'=>'increment',//'increment'/'overwrite'/'fail'自定义包括如果您希望包含自定义元标记、html、css或Javascript,文件应用程序将从您的_files存储路径中查找要包含的以下文件:include/head.htmlcss/custom.cssinclude/footer.htmljs/custom.js复制头.htmlinclude/head.html复制用于添加计数器、统计信息(如GoogleAnalytics)和进入文档标签的元<head>标签。自定义.csscss/custom.css复制使用CSS变量自定义CSS样式阅读更多页脚.htmlinclude/footer.html复制</body>就在结束标签的上方。用于触发自定义javascript。自定义.jsjs/custom.js复制加载自定义javascript文件。高级Javascript配置尽管主文件配置部分包含最有用的选项,但也有一些高级Javascript选项可供希望调整界面的人使用。这些选项与主配置分开的原因:避免使用大多数用户不需要的高级选项使主配置混乱。仅限Javascript选项的高级嵌套配置逻辑。许多Javascript选项都是函数,需要直接从Javascript中声明。使用说明首先,_files/js/custom.js在您的storage_path._files/js/custom.js复制打开文件并包含您的自定义选项。在下面的示例中,我们将弹出图像分配给图像click,zoom而不是导航到上一个/下一个。_files/js/custom.js_c.config={popup:{click:'zoom',//prev_next,next,zoom}}复制以下是具有默认值的所有当前选项的列表:_c.config={//customcontextmenu(dropdown)optionscontextmenu:{rotate:{text:'rotate',icon:'rotate_right',condition:(item)=>item.browser_image,//href:(item)=>{},action:(item)=>_h.popup(null,null,null,item.url_path)}}//download_diroptionsdownload_dir:{javascript:true,//UsetheJavascriptdownloadsAPItodownloadzipfilescurrent_dir_only:true//Onlyassigndownloaddirbuttontocurrentdirectory},//favicon//Addyourownencodedinlinefaviconorfalsetodisable/SVGhttps://yoksel.github.io/url-encoder/favicon:"<linkrel=\"icon\"href=\"data:image/svg+xml,%3Csvgxmlns='http://www.w3.org/2000/svg'viewBox='002424'%3E%3Cpathfill='%2337474F'd='M20,18H4V8H20M20,6H12L10,4H4C2.89,42,4.892,6V18A2,200,04,20H20A2,200,022,18V8C22,6.8921.1,620,6Z'/%3E%3C/svg%3E\"type=\"image/svg+xml\"/>",//history_scroll/attemptstorestorescrollpositiononbrowserhistorynavigationhistory_scroll:true,//customlanguageoptionslang:{//assignlanguagemenuintopbar/true=all/false=nomenu(default)menu:['pt','en','zh'],//Portuguese,English,Chinese//overrideorcreatenewlanguageslangs:{fr:{logout:'déconnexion'},no:{date:'dato',flag:'no'}}},//load_svg_max_filesize100kb/becausecomplexSVGvectorfileswillslowdownrenderinginbrowserload_svg_max_filesize:100000,//panoramaoptionspanorama:{//functiontodetectpanoramaequirectangularsourcefileis_pano:(item)=>{vard=item.dimensions;//>=2048px&&ratio2:1with1%pixelmarginreturnd[0]>=2048&&Math.abs(d[0]/d[1]-2)<0.01;}},//popupoptionspopup:{captionEl:true,//showpopupcaptioncaption_hide:true,//Auto-hidepopupcaptiononmouseinactivitycaption_style:'block',//captionstyle:block,box,subtitles,gradient,topbar,nonecaption_align:'center-left',//captionalign:left,center-left,center,rightclick:'prev_next',//popupclick:prev_next,next,zoomzoomEl:false,//showzoombuttonplayEl:false,//showslideshowplaybuttontransition:'glide',//slideshowtransition:none,slide,glide,fade,zoom,pop,elasticplay_transition:null,//assigntransitionforslideshow(sameasabove).InheritsmaintransitionbydefaultbgOpacity:.95,//backgroundopacityplay_interval:5000,//slideshowplayintervalloop:false,//loopslideshowtransitions:{//customtransitionsObjectmytransition:function(dir){return{translateX:[10*dir,0],opacity:[.1,1],duration:1000,easing:'easeOutQuart'}}}},//custompage<title>function/belowisdefaulttitle:(path,name,error,count)=>{return(name||'/')+(error?'':'['+count+']');},//uppyuploaderinterfaceoptionsuppy:{note:'Uploadimagesonly,maximum%upload_max_filesize%',locale:''//https://github.com/transloadit/uppy/tree/main/packages/%40uppy/locales/srcDropTarget:false,Webcam:false,//https://uppy.io/docs/webcam/ImageEditor:{//https://uppy.io/docs/image-editor/quality:0.8,cropperOptions:{},actions:{}}},}复制语默认情况下,界面语言将根据检测到的浏览器语言自动加载。工作正在进行中翻译工作正在进行中。随着我们添加新功能,一些文本仍为英文。来自url如果需要,访问者可以通过将参数附加到浏览器中的url来覆盖语言选项。指定特定语言如果访问者希望覆盖指定的语言,只需?lang={code}在浏览器中附加即可。https://demo.files.gallery/?lang=fr复制重置语言如果访问者想要重置任何以前分配的语言,只需?lang=reset在浏览器中附加即可。https://demo.files.gallery/?lang=reset复制启用语言菜单lang_menu可以通过附加来启用语言菜单(配置选项)lang_menu=1。https://demo.files.gallery/?lang_menu=1复制看演示语言配置选项中可用的语言配置选项config.php。lang_default如果浏览器语言不受支持或被lang_auto禁用,则默认界面语言。'lang_default'=>'en'复制lang_auto根据检测到的浏览器语言自动分配界面语言。'lang_auto'=>true复制添加新的自定义语言如果您要使用的语言不存在或者您只是想添加自己的语言,您可以添加语言文件_files/lang/{code}.json。如果您希望语言根据浏览器语言自动加载,则需要按照语言代码约定命名[参见ref]。如果您希望您的新语言作为默认语言,请更改选项'lang_default'=>'{code}',并设置'lang_auto'=>false是否不希望从浏览器自动分配语言。添加翻译时使用以下默认语言模板:{"blocks":"","columns":"","copylink":"","copytext":"","date":"","delete":"","directoryisempty":"","download":"","duplicate":"","error":"","fail":"","files":"","filter":"","folders":"","googlemaps":"","grid":"","imagelist":"","images":"","kind":"","language":"","layout":"","list":"","loading":"","login":"","logout":"","matchesfoundfor":"","name":"","newfile":"","newfolder":"","openinnewtab":"","rename":"","rows":"","save":"","showinfo":"","size":"","sort":"","space":"","uniform":"","upload":"","zoom":""}复制语言javascript配置您还可以从javascriptconfig扩展语言并分配语言选项。_c.config={//customlanguageoptionslang:{//assignlanguagemenuitemsintopbar/true=all/false=nomenu(default)menu:['pt','en','zh'],//Portuguese,English,Chinese//overrideorcreatenewlanguageslangs:{fr:{logout:'déconnexion'},no:{date:'dato',flag:'no'}}},}复制提交语言修改随时提交新语言或对现有翻译的改进。我们将在官方版本中包含改进。故障排除如果遇到问题,您要做的第一件事是检查“文件”应用程序的内置诊断程序。此操作将专门检查文件应用程序对某些功能所需的服务器/PHP功能。?check=1通过附加到您的文件应用程序url在浏览器中访问您的诊断。https://yourwebsite.com/?check=1复制见演示:demo.files.gallery/?check=1支持如需支持,请在forum.files.gallery中发布问题更新更新文件应用程序更新文件应用程序就像安装.只需下载最新的文件应用程序index.php并替换您现有的文件应用程序index.php。您的配置设置将保留在_files/config/config.php.索引.php如果您出于某种原因index.php直接进行了编辑,则这些更改将丢失。在文件应用程序如果您在configcheck_updates中启用了该选项,当有可用更新时,您将直接在Files应用程序中收到通知。此外,您可以直接从界面选择“更新”、“下载”或“阅读更多”。默认情况下禁用此选项,因为您可能不希望此选项公开可用。
前言因为昨天的workers.devDNS污染事件,CFworkers默认域名后缀workers.dev被全线DNS污染,所以CFworkers默认域名已经越来越不稳定了,我们可以使用自己的自定义域名来解决。准备材料1.一个域名2.一个CloudFlare账号教程1.托管域名就是把自己的域名转移到CloudFlare,托管于CloudFlare,这个很简单,不会的可以自己百度,如果没有域名,也可以参考教程Freenom申请免费域名_一曲横笛的博客-CSDN博客申请一个自己的免费域名2.新增DNS解析在自己得域名新增一个DNS解析,名称自定义,IPv4随便填,最重要的是打开小黄云(CDN)3.创建Workers步骤和原来的步骤一样,教程:利用CF搭建Github下载代理_一曲横笛的博客-CSDN博客4.关联域名进入你的域名,不是你的首页!进入Workers,添加路由路由填写上一步的子域名+/*,比如我刚刚DNS解析的域名是gh.xxxxx.cf,那在路由一栏则填写gh.xxxxx.cf/*,服务选择需要自定义域名访问的Worker,就是你刚刚第三步创建的,注意需要先创建Worker再来关联,表示通过这个自定义域名来访问Worker服务:完成后就可以通过自定义的域名访问Worker服务了。总结总结一下,两个关键点:域名必须托管于CloudFlareWorker创建后需添加路由关联
在这个脚本出现之前就已经有很多类似的脚本了,而调用API的原因为了模拟有开发者在使用订阅免得微软不自动续费当然,到今日微软的自动续费机制依然是个迷,所以我分享这个脚本的主要是因为我透过此脚本续费成功了。效果演示Telegram频道:https://t.me/+mSLMW23v16AxNTA9从3月1日开始执行到现在续费原理引用自https://ednovas.gitbook.io/e5使用E5开发者账号注册应用,并通过注册的应用调用MicrosoftGraphAPI(调用MicrosoftGraphAPI是判定开发活动的一种)来伪装开发者活动(简单来说就是假装你是开发者,然后调用API进行E5续订)更多详细的原理可自行使用搜索引擎搜索“E5调用API原理“准备材料一个Cloudflare账号一个E5账号注意,下面演示的全部密钥和ID都是临时的,在此文章发表前已全部失效。创建CloudflareWorkers随便填一个名字即可然后按继续使用Free计划即可成功后,你应能看见以下画面创建一个服务点击创建服务并输入一个名字,没有限制选择HTTP处理程序然后点击创建服务关闭Routing前往触发器,并选择禁用路由,然后选择取消部署创建微软应用程序在应用注册页面中,点击新注册名称值名称APICallCloudflare受支持的帐户类型仅此组织目录(仅<组织名称>-单一租户)中的帐户重定向URI(可选)Web,http://localhost:42791/填写后,按注册创建密钥前往证书和密码页面,点击`新客户端密码截止期限最大值为两年,如需要更长时间请自行透过搜索引擎查看如何调整为永久名称值说明Workers截止期限24个月你应该能看到值和机密ID,请保存值名称值值S_N8Q~K6gj3hWVx36G.JuCE0f8boxoXUH7Gf-cSe添加权限前往API权限,根据下图中的API添加权限权限名称URLDirectory.Read.Allhttps://graph.microsoft.com/Directory.Read.AllDirectory.ReadWrite.Allhttps://graph.microsoft.com/Directory.ReadWrite.AllFiles.Read.Allhttps://graph.microsoft.com/Files.Read.AllFiles.ReadWrite.Allhttps://graph.microsoft.com/Files.ReadWrite.AllMail.Readhttps://graph.microsoft.com/Mail.ReadMail.ReadWritehttps://graph.microsoft.com/Mail.ReadWriteMailboxSettings.Readhttps://graph.microsoft.com/MailboxSettings.ReadMailboxSettings.ReadWritehttps://graph.microsoft.com/MailboxSettings.ReadWriteoffline_accesshttps://graph.microsoft.com/offline_accessSites.Read.Allhttps://graph.microsoft.com/Sites.Read.AllSites.ReadWrite.Allhttps://graph.microsoft.com/Sites.ReadWrite.AllUser.Readhttps://graph.microsoft.com/User.ReadUser.ReadWrite.Allhttps://graph.microsoft.com/User.ReadWrite.All添加后,按一下代表<组织名称>授予管理员同意获取refresh_token前往概述,把应用程序(客户端)ID保存下来名称值应用程序(客户端)ID2d4599ba-57e1-44a3-9fcb-aa4e0d2e7755请把{{client_id}}替换成应用程序(客户端)ID并在浏览器打开以下页面:如果出现错误请再三检查URL是否输入正确,是否已经进行url-encodedhttps://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?client_id={{client_id}}&response_type=code&redirect_uri=http://localhost:42791&scope=https://graph.microsoft.com/offline_access点击接受然后你会得到以下网址:http://localhost:42791/?code=0.AXAAL9t9i7-ze0uADZmakODAWLqZRS3hV6NEn8uqTg0ud1VwABU.AQABAAIAAAD--DLA3VO7QrddgJg7Wevr9M5G7V4xymnWO2knhWvOk6aYPR4IlcbOq1D4Qt6nVa4gtz00NeYo1evTEKRUBk8STsarptgH-tFBPl9GfssTjgXJWra7_rgXIuezgNDsyaIxBU9BcmpUjIMw6_L4bp0JdJp57uJ9_qYvFvudptGXaWxwscypyGFopk_9q2Y2j1RuY17seLancbuRYzK_2ozTxwcAo3SFOYYDCEJZrRD1PgxJNqrDyW6j6eyNPwj9XnlOFyhtErJ6g5S2wKLonSIcWDE8ep6QJ5lTFPdLQm8B34kLzjC8y12kvGcdVPdb_WCoIymM2Y-cTDSlhhyCjB4uPVbsTei0tOvjl69byoR8dyUlwRYNJSFrdV79OJpJ3HntcOIqSaXqiOw-IqIRQ7ybijZzNSVzTWIorzGNOc-QJAen82o6d9oTkTr_QQ8QPWH53a2WUFMq7YQCZhsUYw_sbbIlbycmDiQQO41Neut1RniSJ8yG0LwPCh5XJSakhYV1KDHUGXnUrbZLoR8390nEL8scxqdMknC3-Pu4oR2-nTRMModj57hDCo4unmRuQs4WvfWYL6R-3DzDNVBgtHQ4TgGynXqqNDaBUaCH8hz-YKoeI3ynHI1GtDf_N2RoOg1UnisVyIjbyrjjp3IPAd_1IAA&session_state=52fd633e-7b30-4209-bb16-5d2873621057##KeyValuecode0.AXAAL9t9i7-ze0uADZmakODAWLqZRS3hV6NEn8uqTg0ud1VwABU.AQABAAIAAAD--DLA3VO7QrddgJg7Wevr9M5G7V4xymnWO2knhWvOk6aYPR4IlcbOq1D4Qt6nVa4gtz00NeYo1evTEKRUBk8STsarptgH-tFBPl9GfssTjgXJWra7_rgXIuezgNDsyaIxBU9BcmpUjIMw6_L4bp0JdJp57uJ9_qYvFvudptGXaWxwscypyGFopk_9q2Y2j1RuY17seLancbuRYzK_2ozTxwcAo3SFOYYDCEJZrRD1PgxJNqrDyW6j6eyNPwj9XnlOFyhtErJ6g5S2wKLonSIcWDE8ep6QJ5lTFPdLQm8B34kLzjC8y12kvGcdVPdb_WCoIymM2Y-cTDSlhhyCjB4uPVbsTei0tOvjl69byoR8dyUlwRYNJSFrdV79OJpJ3HntcOIqSaXqiOw-IqIRQ7ybijZzNSVzTWIorzGNOc-QJAen82o6d9oTkTr_QQ8QPWH53a2WUFMq7YQCZhsUYw_sbbIlbycmDiQQO41Neut1RniSJ8yG0LwPCh5XJSakhYV1KDHUGXnUrbZLoR8390nEL8scxqdMknC3-Pu4oR2-nTRMModj57hDCo4unmRuQs4WvfWYL6R-3DzDNVBgtHQ4TgGynXqqNDaBUaCH8hz-YKoeI3ynHI1GtDf_N2RoOg1UnisVyIjbyrjjp3IPAd_1IAAsession_state52fd633e-7b30-4209-bb16-5d2873621057如果得到错误回应请参考微软的错误响应在Postman中前往Variables然后填入要求的内容,记得按Save保存如果没有Postman账号可以注册一个,很简单接着,前往Step2并按一下Send成功后,回应200OK并返回JSON内容KeyValuetoken_typeBearerscopeprofileopenidemailhttps://graph.microsoft.com/User.Readexpires_in3599access_tokeneyJ...refresh_token0.AX...弃access_token而取refresh_token者也。添加账号回到Cloudflare,前往Workers->KV并创建命名空间建议格式为MS_<你的组织名称>以方便管理添加完成后,点击查看添加以下变量密钥值config_id<应用程序(客户端)ID(client_id)值>config_key<机密ID中的值>refresh_token<refresh_token的值>绑定KV命名空间完成后,前往Workers->概述->你的Workers->设置并点击添加绑定完成后点击保存添加脚本回到资源,点击快速编辑并粘贴以下内容代码可修改的部分:值说明botToken电报的机器人回报,如果不需要可以设置为空""chatId电报的频道/个人对话IDNAMESPACESCloudflare的命名空间,就是刚才设置的那个保存后返回上一页设置定时到触发器,选择添加Cron触发器按照以下图片设置即可如一切正常,机器人应该会每15分钟发送一次信息,见效果演示参考资料GitHub:InspAlgo/clockworkMicrosoft标识平台和OAuth2.0授权代码流