介绍
摘自 项目 README:
Showcase, share, preview, and download files inside your OneDrive with onedrive-vercel-index
- Completely free to host 💸
- Super fast ⚡ and responsive 💦
- Takes less than 15 minutes to setup ⏱️
- Highly customisable ⚒️
🍌 More importantly, we are pretty (●'◡'●)
创建 Office 365 E5 开发者账号并设置子账号
- 1. 注册用于加入 开发者计划 的微软账号,并启用两步验证
- 2. 输入公司信息(注意!这里国家/地区一栏最好写中国大陆或香港等,数据中心位置将会根据填写区域走),需要手机号验证
- 3. 注册 E5 全局管理账号,需要手机号验证(可与上面的开发者账号用同一个号码),同时可能会遇到谷歌验证码
- 4. 可以预配置 15 个子账号并统一设置初始密码,后续直接修改信息即可使用
- 5. 用全局管理账号登录 Office ,菜单中选择 Admin 打开 admin center,转到 这里 修改 OneDrive 最大空间为 5T
- 如果上述设置 5T 空间无法生效,则需要安装 SharePoint Online Management Shell 工具执行以下命令来设置:
# 使用全局管理账号登录 SharePoint
Connect-SPOService -Url https://{NAME-HERE}-admin.sharepoint.com
# 修改用户空间大小
Set-SPOSite -Identity https://{NAME-HERE}-my.sharepoint.com/personal/{DOMAIN-HERE}_onmicrosoft_com -StorageQuota 5242880
- 6. 按需激活全局管理和子账号的 OneDrive
- 7. 准备部署 oneindex / pyone / onemange 等程序,确保触发 API 完成订阅续订~~
部署 onedrive-vercel-index
- 注册 Vercel 和 upstash 账号
- Vercel: Serverless 运行 Next.js,用于部署网站前端
- upstash: Serverless 数据库,用于网站的 Redis 数据库
- 安装 Vercel CLI
- 阅读 参考文档
- 将项目
git clone
到本地或直接在 GitHub 上fork
- 由于 Vercel 只能访问公开仓库,访问私有仓库时会有一些限制,于是尝试本地部署
- 然而本地部署一直失败,查看 Vercel 日志后出现与 Discussion 一样的 error
ERROR [ioredis] Unhandled error event: Error: connect ECONNREFUSED 127.0.0.1:6379 at TCPConnectWrap.afterConnect [as oncomplete]
- 最终还是选择 fork 搭建
- 修改
vercel.json
,关闭 Vercel-bot 的烦人提示 - 修改
site.config.js
userPrincipalName
: 出于隐私考虑,选择在 Vercel 的环境变量里创建NEXT_PUBLIC_USER_PRINCIPLE_NAME
。- 注意
site.config.js
中不要注释掉userPrincipalName: process.env.NEXT_PUBLIC_USER_PRINCIPLE_NAME || '',
这一行,而是像前文这样将邮箱的位置改成空值,否则 Vercel 部署时无法应用环境变量
- 注意
icon
: 自定义网页 ,同时替换 GitHub/public/icons
目录的 favicon。- 其余参照文档即可
- 修改
api.config.js
- 为了 Office 账号安全性(不暴露全局管理员账号), 自行创建 client id 与 secret
- 根据 OneDrive 国际版/世纪互联,可视情况修改 API
- 导入 Vercel,修改 build 参数
- 使用 与 Vercel 深度集成的 Upstash
- onedrive-vercel-index 会自动创建
REDIS_URL
等环境变量 - 同样,Redis 数据库默认开启了传输加密
- 格式:
rediss://:{PASSWORD}@{ENDPOINT}:{PORT}
- 样例:
rediss://: xxx...@some-thing-like-35533.upstash.io:35533
- 格式:
- onedrive-vercel-index 会自动创建
- 重新部署 preview,确认可以进入 OAuth 认证页面
- 自定义域名
- 在域名商或者 CDN 处添加
CNAME
验证域名所有权 - Vercel 上设置 308 重定向
- 在域名商或者 CDN 处添加
- 根据网站实际情况,可能需要暂时禁用子域名的 cache
- Cloudflare 可在域名管理中开启
Development Mode
,关闭缓存来即时确认网站部署情况
- Cloudflare 可在域名管理中开启
- 部署 prod,进行 OAuth 认证
定制化
- 受密码保护的文件夹
- 有个看起来有点反人类的设计: 输入访问密码之后,可以看到
.password
文件,虽然逻辑上没什么问题,但这个文件应该隐藏了? 尝试通过文件搜索找到.password
,看来只会查找文件名,而不能搜索文件扩展名。- 在 SpencerWoo 的实例测试找到了,不过访问
.password
文件本身也需要访问密码,那应该没什么问题~
- 有个看起来有点反人类的设计: 输入访问密码之后,可以看到
- 屏蔽私密文件夹的文件搜索
- 链接测试
- 原来 OneDrive 里就可以添加链接,那就只是一个很普通的功能
- Replit 反代
- 自定义字体
- 引入更多网盘列表
- 尝试合并 iRedScarf/onedrive-vercel-index