来!让我们用Vercel来分享你的OneDrive!

正式开始

你可以根据前文免费拿E3,得到至高免费5T的OneDrive存储空间,也可以用你个人永久免费的5G空间,都可以!

前往 高级 - OneDrive Vercel Index 拿到 clientid 和 secret

前往该页面,点击快速部署 onedrive-index/README.zh-CN.md at main · iRedScarf/onedrive-index

填写必须的5个环境变量

其中,USER_PRINCIPAL_NAME为类似 huding@Smartree233.onmicrosoft.com 的电子邮箱,也就是你登陆OneDrive的用户名

Vercel部署完毕后,会报错连不上Redis,因为我们还没创建和绑定,现在我们开始做

前往 https://vercel.com/integrations/upstash 点击 Install



来到Vercel的环境变量页面,这就是绑定成功了

随便打开一个部署,点击 Redeploy 重新部署,就能成功连接数据库了

接下来访问你的项目域名,进入OneDrive-Index的引导,需要打开微软的一个链接授权

授权后会重定向到一个localhost的域名,复制该URI,粘贴回OneDrive-Index即可(仅需一次)

成功部署!

这里有些高级设置,你可能需要了解一下。

使用你自己的 client id 与 secret

如果你的账户没有管理权限,那么你就无法使用项目提供的 clientId 与 clientSecret。这个情况下,你就要生成你自己的 client id 与 secret 了。

注册一个应用程序

打开以下链接:

创建一个应用程序:

  1. 登入你的微软账户,点击 New registration

  2. 输入一个名字,例如 my-onedrive-vercel-index。

  3. 将 Supported account types 设置为:

    Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)
    

    OneDrive 世纪互联用户设置为 - 任何组织目录(任何 Azure AD 目录 - 多租户)中的帐户。

  4. 将 Redirect URI (optional) 设置为 Web(在下拉菜单里)以及 http://localhost

  5. 点击注册。


获取你的 client id 与 secret

你的应用 (client) ID 就是 api.config.js 里的 clientId ,它应该出现在 Overview > Essentials

Your application (client) ID

你的 client secret 需要手动获取

  1. 点击 Certificates & secrets
  2. 点击 New client secret
  3. 创建一个新 secret ,描述为 client_secret
  4. 将 Expires 设置为 Custom
  5. 将 Start 与 End 设置为能设置的最长时间。

Generate a client secret

最后,点击 Add ,然后复制 client_secret 的值并妥善保管。(只有一次复制机会)

Copy your client secret

修改 API 权限

Microsoft Graph API 可以设置 API 范围,我们只需要以下三个( api.config.js 里要求的):

user.read files.read.all offline_access

点击 API permissions,再点击 Microsoft Graph,再点击 Delegated permissions,然后搜索:

  • User.Read(这应该一开始就勾上了)
  • Files.Read.All
  • offline_access

选择全部三个并点击 Add permissions

Modify Microsoft Graph API permissions

现在,你就准备好你自己的 clientId 与 clientSecret 了。

修改 api.config.js

你可以直接将 clientId 修改为你自己的 clientId

但是,client secret 需要保密,你需要在下面进行 AES 加密:

Obfuscate your client secret 👇
Your client secret:
Your obfuscated client secret:

填写 client secret 后,你应该得到一个长得像这样的字符串:

U2FsdGVkX1830zo3/pFDqaBCVBb37iLw3WnBDWGF9GIB2f4apzv0roemp8Y+iIxI3Ih5ecyukqELQEGzZlYiWg==

将它替换到 obfuscatedClientSecret 里。

如果你修改了 redirectUri 为其他值,你也要在 api.config.js 里设置好。

详情请参考 关于使用自己的 secret 进行 AES 加密方式的小白解决办法。(重要必须加密才能成功)、

可能很多像我一样的小白想使用自己的secret,但又不知道如何加密。我折腾了很久才摸索出来,使用这个在线加密工具 https://www.dute.org/aes ,原始文本填入自己的secret,秘钥填入onedrive-vercel-index加/解密模式选择CBC (Cipher Block Chaining, Default),点击AES 加密就可以了。我也是这样将作者内置的secret反向解密出来的,加密方式试了一遍又一遍~

发表评论

0 评论