项目说明
onedrive-vercel-index是由@Spencer Woo 编写的一款onedrive目录索引程序,相比其他的目录索引程序,最大的特点就是美观,不用部署在自己的服务器上。
项目地址:https://github.com/spencerwooo/onedrive-vercel-index
官方展示:https://drive.swo.moe/zh-CN/
官方文档:https://ovi.swo.moe/zh/docs/getting-started
准备工作
一个GitHub账号,一个能正常联通GitHub和Vercel的网络环境。
基础教程
Fork项目
登录GitHub,找到onedrive-vercel-index的项目地址,将此项目 Fork 到你自己的 GitHub 账户中。
修改设置
需要修改的文件在config目录下,分别是 config/site.config.js
与 config/api.config.js
。前者是用来定制显示的网页,后者是用来定义 API 参数的。一般只用修改前者即可。
在 config/site.config.js
里必须要修改的两个值
userPrincipalName
– 是用来在 OAuth 步骤时认证你的个人信息的。通常是你的 微软账户邮箱。baseDirectory
– 是你要分享的 OneDrive 目录。你必须保证此目录有效且与此参数一致。(你可以直接在 OneDrive 内创建一个叫做owouo
文件夹,并将此项设置为/owouo
。)
还有一些其他可以自定义的地方,title是网站的标题,footer是页脚显示html代码,email、Github链接和Telegram链接可以修改为你自己的按照你的需要修改。
修改后保存。
Vercel 部署
在 Vercel 导入 你自己的 onedrive-vercel-index GitHub 项目,并进行以下设置:
- 修改 Build command 为
pnpm build
. - 修改 Install command 为
pnpm install
.
然后点击Deploy,Vercel 将会下载你的项目并进行部署。
连接到 Redis
我们推荐使用 Upstash ,它完全免费,并且与 Vercel 深度合作。当然,你也可以使用你自己的 Redis 数据库,只要有 Vercel 能用的访问链接就行。
打开upstash,选择连接到你自己的项目上,根据提示进行后续的操作,在完成Github授权后,就算完成了。
重新部署
最后,重新进行一次部署。并在部署完成后访问 Vercel 提供的链接,onedrive-vercel-index
将会引导你进行 OAuth 认证。你也可以在 Vercel 自定义访问链接。
进行认证
访问你的 onedrive-vercel-index
,如果你从未进行认证,OAuth 认证将会自动开始。
第一步 – 准备工作
检查此页面上的参数是否正确,尤其是 client_id
与 client_secret
(加密的),他们应该与你的项目里的一致。你还要检查一下 API 权限,应该只需要这三个:
user.read
: 在进行 OAuth 时认证你的身份,防止某些傻逼通过重新认证雷普你的项目。files.read.all
: 用于访问你的 OneDrive 的文件offline_access
: 就是……用来离线访问 🙃
如果一切都准备好了,就来到第二步。如果有些什么差错,检查你的 config/api.config.js
然后重新部署。
第二步 – 获取认证码
我们已经基于 config/api.config.js
给你准备好认证链接了。点击链接,你将会进入一个新标签页并进行登录。请确保你登陆的账户与你在 config/site.config.js
的 userPrincipalName
里设置的一致。
完成登录后,你将会跳转到 http://localhost
,尽管它显示无法访问,你只需要复制地址栏中的地址然后粘贴到第二步的输入框里。onedrive-vercel-index 会自动识别用于获取 access_token
与 refresh_token
的认证码,然后点击 Get tokens 就行。
第三步 – 获取凭证
你只需要等待几秒钟,页面上就会显示成功提示以及几行凭证,请点击 Store tokens ,你的凭证就会保存到 Redis 数据库里。
维护
上面的后半段教程复制与官方文档,主要是想记录一下关于后续可能出现404的解决办法。
出现404的原因大概率是更改了onedrive的账号密码或者授权出问题了,这里的解决办法是重新进行OAuth 认证。
重新认证的方法:删除 upstash
中的 redis 缓存,再刷新网站。
进入https://console.upstash.com/在首页会看到 Databases 下面 onedrive-vercel-index项目,进去后选择Data Browser,把里面的token都删除,然后重新访问网站就可以重新认证。
暂无评论内容