抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

無名小栈

站点重构中

阿里的服务器到期了,也没钱再续,于是原来的网盘系统 Cloudreve 就废弃了。由于原来的后端储存使用的是微软的 OneDrive,便想着再找一个无需主机就能实现 OneDrive 文件共享的程序,本来想使用 Oneindex 的,但是原作者已经删库了,并且已经多年未更新了,只好放弃。不过最近在逛 GitHub 的时候,偶然发现了 OneManager-php 这个只需要 PHP 环境便能部署运行的程序,于是便试着搞一搞。

程序界面

前期准备

本文主要分为两种方式来讲解如何搭建

  • 腾讯云 SCF 云函数 + 自定义域名 ( 推荐,国内访问速度快 )
  • Heroku + Cloudflare ( 不推荐,各种小问题,以及自定义域名需要绑定信用卡 )

准备网盘

阿里云盘

阿里新出的网盘,新用户注册大概会有 1T 左右的空间吧,内测用户 2T ~ 8T 大小的都有。这个网盘目前还行,不限速,但说不好过一段时间会不会变的和百度网盘一样恶心 ( 我觉得大概率会 )。

OneDrive

OneDrive 账号,最好储存为 5T 大小的那种。这方面的教程百度上一搜一大把,这里不做过多阐述,我这里使用的是 Microsoft 365 E5 开发者账号。当然个人版账号也是可以的,只是空间通常仅为 15G,自行斟酌。

注册云服务商账号

腾讯云 SCF 云函数 方式部署
  1. 注册腾讯云
    这个没啥好说的,注册就完了。

  2. 注册域名
    非必要,仅自定义域名时需要填写。

    自定义域名需要域名已实名认证并备案

    腾讯云也时不时的有一些免费买域名的活动,也可以考虑考虑。
Heroku + Cloudflare 方式部署
  1. 注册 Heroku

注意:

  • 注册时最好注册两个账号,因为 Heroku 免费套餐每月只能运行 550 小时,两个账号可实现全月不间断运行
  • 注册时可能需要使用代理访问,否则无法通过谷歌人机验证
  1. 注册 CloudflareCloudflare 账号这玩意应该是人手一个了,就不细说了

服务部署

腾讯云 SCF 云函数

SCF 新增限制,环境变量整体 最大4KB,所以 最多添加4个盘

  • 前往 腾讯云 SCF 管理页面

  • 点击左侧的 函数服务,然后点击 新建

  • 在创建方式里选择 模板创建,然后在模糊搜索里输入 onedrive

  • 选中 OnedriveWithSCF,点击下一步

  • 函数名称地域描述 可随意更改

  • 在触发器配置处请检查 集成响应 是否开启

  • 点击完成后在左侧点击 触发管理 页面下的 访问路径 进入程序配置

Heroku + Cloudflare

该方法已不推荐使用

Heroku 端部署

  • 前往 OneManager-php 项目的 GitHub 仓库并 Fork( 这里的 Fork 并非强制性要求 )

  • 点击 Readme.md 中的 Deploy to Heroku 按钮

  • 跳转到 Heroku 后在 App name 栏中输入程序名称

    这里输入的内容即为将部署程序的子域名前缀

  • 输入完成后点击 Deploy app

  • 部署成功后点击 View 即可进入配置页面

Cloudflare 端部署

其实到此为止程序已经部署成功了,已经可以访问 Heroku 为你分配的域名来访问了,但是要想实现 24 小时不间断访问,则需要再注册一个 Heroku 账号并执行上述操作,并确保两个网址的内容一致,然后借助 Cloudflare Workers 来实现

  • 进入 Workers

  • 在脚本输入框中粘贴以下内容并将两个 Heroku 账号中程序部署的网址填入下方单双日

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    // 单日
    const SingleDay = '第一个网址'
    // 双日
    const DoubleDay = '第二个网址'
    // 一切给CF代理,true/false
    const CFproxy = true

    // 由于heroku不绑卡不能自定义域名,就算绑卡后https也不方便
    // 另外免费套餐每月550小时,有些人不够用
    // 于是在CF Workers使用此代码,分单双日拉取不同heroku帐号下的相同网页
    // 只改上面,下面不用动

    addEventListener('fetch', event => {
    let nd = new Date();
    if (nd.getDate()%2) {
    host = SingleDay
    } else {
    host = DoubleDay
    }
    if (!CFproxy) {
    let url=new URL(event.request.url);
    if (url.protocol == 'http:') {
    url.protocol = 'https:'
    response = Response.redirect(url.href);
    event.respondWith( response );
    } else {
    url.hostname=host;
    let request=new Request(url,event.request);
    event.respondWith( fetch(request) )
    }
    } else {
    event.respondWith( fetchAndApply(event.request) );
    }
    })

    async function fetchAndApply(request) {
    let response = null;
    let url = new URL(request.url);
    if (url.protocol == 'http:') {
    url.protocol = 'https:'
    response = Response.redirect(url.href);
    return response;
    }
    url.host = host;

    let method = request.method;
    let body = request.body;
    let request_headers = request.headers;
    let new_request_headers = new Headers(request_headers);

    new_request_headers.set('Host', url.host);
    new_request_headers.set('Referer', request.url);

    let original_response = await fetch(url.href, {
    method: method,
    body: body,
    headers: new_request_headers
    });

    response = new Response(original_response.body, {
    status: original_response.status,
    headers: original_response.headers
    })

    return response;
    }
  • 填写完成后点击保存并部署即可看到 Cloudflare 给你提供的子域

  • 至此教程完成

程序配置

安装

  • 跳转到安装页面点击开始安装

  • 选择简体中文再点击新建 API Key

  • 点击 Reveal 后复制 API Key

  • 再输入后台管理密码

    必须输入,否则后期无法进入后台

  • 确认后进入主页面左上角进入后台添加盘

  • 输入标签及显示名称

  • 选择你的 OneDrive 对应的版本

    各种 A1,A1P,E3,E5 均为国际版

  • 点击确认后跳转至微软账号登陆界面

  • 登录成功后如图所示

    程序默认主界面
    程序默认主界面

更新

云函数部署方式更新

  • Clone 仓库最新代码到本地
    1
    git clone https://github.com/qkqpttgf/OneManager-php.git
  • 点击左侧 函数管理 页面上方的 函数代码
  • 提交方法 处选择 本地上传 zip 包
  • 点击上传选择刚 Clone 到本地的 zip 包并点击 部署

Heroku 部署方式更新

该部署方式已不推荐使用

Heroku 将会从代码仓库自动拉取最新代码并部署

其他方面

自定义域名

腾讯云 SCF 部署方式

  • 登陆你的域名管理面板,添加 cname 解析,地址为你刚刚创建的 SCF 的外链地址
  • SCF 控制台 左侧点击 触发管理
  • 点击 API 服务名 右侧的链接跳转到 API 网关
  • 通用 API 列表 的右侧点击 编辑
  • 在路径中改为 /
  • 然后点击立即完成 后点击 发布服务
  • 然后选择到 自定义域名 后点击 新建
  • 域名 处填写你刚添加的域名,若有证书也可开启 HTTPS 访问

Heroku 部署方式

Heroku 的自定义域名需要借助 CloudFlare Workers 来实现,有点麻烦,实在想自定义域名的朋友们可参考下面这篇文章

程序美化

程序默认主题的界面实在是不太美观,这里建议点击右下角来选择你认为合适的主题
我选择的是 renexmoe 主题,并对这个主题做出了一些修改。若你也想自定义主题或开发一套新主题,则需要前文提到的 Fork 该仓库,并将 Heroku 部署源改为你的仓库

当修改完成并推送至 GitHub 后即可点击 Deploy Branch 按钮更新程序部署

评论区 请大家友善讨论哦