基于github和jsdelivr文件服务探索

255 阅读3分钟

前言

    本文记录了一次博主利用electron实现简易文件服务的过程,支持存储各类图片和非压缩文档,希望对electron初学者和对免费文件服务感兴趣的童鞋能有所帮助!

正文

    本文的技术方案为electron+github+jsdelivr。主要适于以下人群:1. electron初学者;2. 对实现和使用免费文件服务以及图床工具感兴趣的群体;3. 有上进心的新时代农民工。

1 electron开发打包方案

    本节主要针对electron初学者,老鸟请直接跳过。由于electron官方提供的教程杂乱无章,虽然近期改版了,但对于初学者来说还是不够友好。

1.1 新建项目

    按照官方第一节教程执行即可。

1.2 构建工具选择

    官方推荐的构建工具为Electron Forge,更受欢迎的两个构建工具为electron packager和electron builder,在github的分别有7.8k、11k颗星,本文采用的是最受欢迎的electron builder作为构建工具。具体使用请移步官网

1.3 项目目录

    输入图片说明

1.4 脚本编写

     根据上面面目录,编写执行脚本

//package.json
"scripts": {
    "pre-build": "umi build",
    "pre-start": "umi dev",
    "start": "set NODE_ENV=development&& electron .",
    "build": "yarn pre-build && electron-builder -w --x64 -c electron-builder/config.yml"
},
// electron-builder/config.yml
appId: your appid
directories: 
 buildResources: electron-builder/resource
 output: electron-builder/dist
# 安装包支持用户自选安装目录
nsis:
  oneClick: false
  allowToChangeInstallationDirectory: true 

2 界面及使用说明

    前端界面油react umi框架编写的SPA

2.1 主界面

    输入图片说明

2.2 存在的问题

(1)github被墙,导致github rest api响应较慢,文件上传成功后不能及时出现在下方列表当中,此时需要点击顶部菜单栏-view-reaload重新加载页面;
(2)上传成功后,免费cdn jsdelivr存在可达延迟,导致文件在浏览器中不能被立即访问到,需要多次刷新浏览器或者等待一段时间后访问;

2.3 使用说明

(1)注册github账号,如有则跳过;
(2)在github用户-Settings-Develop Settings-Personal access tokens新建token, 确保勾选repo权限,记录下token备用,如有则跳过;
(3)新建仓库,仓库名随意,如有则跳过;
(4)将用户名、token、仓库一次输入并点击绑定;
(5)上传文件,支持批量上传(由于被墙,批量失败几率极高)

2.4 体验包

    访问体验包,提取码34tj ,100M,WINDOWS 64位安装包,欢迎各位大佬下载试用

3 总结展望

    本文探讨了基于github和jsdelivr的免费文件接力桌面系统的可行性解决方案,由于各方资源受限,本文不作进一步研究,感兴趣的童鞋可自行研究拓展。接下来博主会尝试在云服务器上手动搭建文件服务,敬请期待!

4 国际惯例

附上原文地址