使用 Vercel 无成本搭建 OneDrive 索引

Tony 219m2021-07-134921 次点击1 人收藏1 人感谢
GitHub:https://github.com/spencerwooo/onedrive-vercel-index
(还有个 CloudFlare Workers 版本,但搭建步骤比较复杂且容易出错,故不建议使用。)

****
## 白嫖 Microsoft 365 E5
申请[Microsoft 365 开发人员计划](https://developer.microsoft.com/zh-cn/microsoft-365/dev-program),90 天有效期。经常调用 API 就可以自动续期,也可以用网上的开源[E5 自动订阅程序](https://qyi.io/archives/687.html)。
****

## DEMO
https://drive.spencerwoo.com/

我自己搭建的:https://drive.iamsjy.com/
![a57e666407f62171c3000010b8154489.png](https://ppmm.org/images/2021/07/13/a57e666407f62171c3000010b8154489.png)
## 功能

### 🚀 功能一览

- 全新「面包屑」导航栏;
- 支持由世纪互联运营的 OneDrive 版本;
- 支持 SharePoint 部署;

### 🗃️ 目录索引显示

- 全新支持自定义的设计风格:spencer.css;
- 支持使用 Emoji 作为文件夹图标(如果文件夹名称第一位是 Emoji 则自动开启该功能);
- 渲染 `README.md` 如果当前目录下包含此文件,使用 [github-markdown-css](https://github.com/sindresorhus/github-markdown-css) 渲染样式;
- 支持「分页」,没有一个目录仅限显示 200 个项目的限制了!

### 📁 文件在线预览

- 根据文件类型渲染文件图标,图标使用 [Font Awesome icons](https://fontawesome.com/);
- 支持预览:
- 纯文本:`.txt`.
- Markdown 格式文本:`.md`, `.mdown`, `.markdown`.
- 图片(支持 Medium 风格的图片缩放):`.png`, `.jpg`, and `.gif`.
- 代码高亮:`.js`, `.py`, `.c`, `.json`...
- PDF(支持懒加载、加载进度、Chrome 内置 PDF 阅读器):`.pdf`.
- 视频:`.mp4`, `.flv`, `.webm`, `.m3u8`.
- Office:`.doc`, `.docx`, `.ppt`, `.pptx`, `.xls`, `.xlsx`.
## 部署
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/git/external?repository-url=https%3A%2F%2Fgithub.com%2Fspencerwooo%2Fonedrive-vercel-index&env=REFRESH_TOKEN,ACCESS_TOKEN,CLIENT_SECRET&envDescription=Required%20API%20tokens%20for%20this%20project.&project-name=onedrive-vercel-index&repo-name=onedrive-vercel-index&demo-title=onedrive-vercel-index&demo-description=Probably%20the%20best%20looking%20OneDrive%20Index%20around!%20Powered%20by%20Vercel%20and%20Next.js.&demo-url=http%3A%2F%2Fonedrive-vercel-index.vercel.app&demo-image=https%3A%2F%2Fraw.githubusercontent.com%2Fspencerwooo%2Fonedrive-vercel-index%2Fmain%2Fpublic%2Fdemo.png)

- 使用上面的按钮将项目部署到 Vercel。 Vercel 会自动将项目分叉并克隆到您的 GitHub 帐户。
- 在 Vercel 中定义环境变量:`REFRESH_TOKEN`、`ACCESS_TOKEN`、`CLIENT_SECRET`。
- 最后,可以更改配置文件 [`config/api.json`](config/api.json) 和 [`config/site.json`](config/site.json) 来自定义网页的样式和内容。

配置 OneDrive 身份验证令牌和变量的步骤与 [`onedrive-cf-index`](https://github.com/spencerwooo/onedrive-cf-index/blob/main/README-CN.md#生成-onedrive-api-令牌) 项目中相同。也可以在那里找到详细的文档。
****
![bbb0dcd9f5ae10865682a5c0c580a7ff.jpg](https://ppmm.org/images/2021/07/13/bbb0dcd9f5ae10865682a5c0c580a7ff.jpg)
可能会遇到环境变量的总大小超过 4KB 导致无法部署的问题
临时解决办法:把[pages/api/index.ts
](https://github.com/spencerwooo/onedrive-vercel-index/blob/main/pages/api/index.ts)中的5-20行
```
let _access_token = ''
const getAccessToken = async () => {‌
if (_access_token) {‌
console.log('Fetch token from memory.')
return _access_token
}
```
改为
```
let _access_token = '改为你的access_token'
const getAccessToken = async () => {‌
// if (_access_token) {‌
// console.log('Fetch token from memory.')
// return _access_token
// }
```
即可。同时要把 GitHub 仓库设为私有,防止access_token泄漏。
收藏 ♥ 感谢
Tony 219m 2021-07-13 
应该是15-20行

可以给趣小组搭一个,简便无成本,SharePoint 下载速度还可以。
Spoony 小组长 2021-07-13 
@Tony 可以可以
Tony 219m 2021-07-14  ♥ 1
@Spoony OneManager 也可以。除了 OneDrive,还支持 Google Drive 和阿里网盘,有后台管理界面,功能更加强大,部署方式多样且简便。
只不过后台界面连 CSS 都没有...预览功能也不如 onedrive-vercel-index
https://github.com/qkqpttgf/OneManager-php


可以换主题,还不错

(过于粗糙的后台管理.....)
自建的:https://my-onemanager.glitch.me/
Tony 219m 2021-07-15 
用 Netlify 部署 onedrive-vercel-index 的方法可以参考:
https://github.com/spencerwooo/onedrive-vercel-index/issues/19#issuecomment-880484406
没有环境变量大小的限制,但不知道为什么,有些时候部署会特别慢。
DEMO:https://onedrive-index.netlify.app/
Tony 219m 2021-07-19 
经测试,OneManager-php 也可以用 railway.app 部署,加载速度更快且不会自动休眠。
部署方式:在 GitHub 上 Fork OneManager-php 源码并在 Railway 中导入即可
自建的:https://onemanager.up.railway.app/
Tony 219m 2021-07-19 
FODI 也是一个不错的 OneDrive 索引。
FODI,Fast OneDrive Index 的缩写,意为 OneDrive 快速列表。相较于其他程序,此版列表速度极快,且无需服务器,部署极为简单。另外,此列表还支持图片/音频/视频/Markdown/TXT 预览。
DEMO:https://logi.im/fodi.html
部署方式:https://logi.im/back-end/fodi-on-cloudflare.html
自建的:https://drive.iamsjy.eu.org/
真·秒开
(加载网页需要几秒钟,但加载完切换目录速度很快)

登录注册 后可回复。