利用jsDelivr和Github来建立一个简单的网盘,写个html上传下载例子

时间: 2024-05-02 07:22:19 浏览: 6
我们可以使用Github来存储文件,然后使用jsDelivr作为CDN来提供访问。 首先,我们在Github上创建一个新的仓库,然后将我们要分享的文件上传到该仓库。 接下来,我们可以使用以下链接来访问我们的文件: ``` https://cdn.jsdelivr.net/gh/用户名/仓库名/文件路径 ``` 其中,用户名是你的Github用户名,仓库名是你创建的仓库名,文件路径是你上传的文件在仓库中的路径。 例如,如果我们上传了一个名为“example.txt”的文件到名为“myfiles”的仓库中,我们可以使用以下链接来访问它: ``` https://cdn.jsdelivr.net/gh/用户名/myfiles/example.txt ``` 现在,我们可以使用以下HTML代码来创建一个简单的上传和下载页面: ```html <!DOCTYPE html> <html> <head> <title>网盘</title> </head> <body> <h1>网盘</h1> <h2>上传文件</h2> <form> <input type="file" name="file"> <button type="submit">上传</button> </form> <h2>下载文件</h2> <ul id="fileList"></ul> <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> <script> // 获取文件列表 axios.get('https://api.github.com/repos/用户名/仓库名/contents/') .then(function(response) { for (var i = 0; i < response.data.length; i++) { var file = response.data[i]; if (file.type === 'file') { var li = document.createElement('li'); var link = document.createElement('a'); link.href = 'https://cdn.jsdelivr.net/gh/用户名/仓库名/' + file.path; link.innerText = file.name; li.appendChild(link); document.getElementById('fileList').appendChild(li); } } }) .catch(function(error) { console.error(error); }); // 上传文件 document.querySelector('form').addEventListener('submit', function(event) { event.preventDefault(); var file = event.target.file.files[0]; var formData = new FormData(); formData.append('file', file); axios.post('https://api.github.com/repos/用户名/仓库名/contents/' + file.name, { content: '', message: '上传文件:' + file.name, branch: 'main' }, { headers: { 'Authorization': 'token 你的Github token' }, data: formData }) .then(function(response) { alert('上传成功'); location.reload(); }) .catch(function(error) { console.error(error); alert('上传失败'); }); }); </script> </body> </html> ``` 注意,你需要将上面的代码中的“用户名”、“仓库名”和“你的Github token”替换为你自己的信息。 现在,你就可以使用这个页面来上传和下载文件了。当你上传文件时,它将被存储在Github仓库中,并通过jsDelivr CDN提供访问。当你访问页面时,它将列出所有可下载的文件,并提供下载链接。

相关推荐

最新推荐

recommend-type

5个好玩的github游戏区开源项目

5个好玩的github游戏区开源项目,包含c++,java,javascript,rust。
recommend-type

如何把本地idea上的项目上传到github上(推荐)

主要介绍了如何把本地idea上的项目上传到github上,本文通过图文的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
recommend-type

提高github下载速度的方法可达到2MB/s(100%有效)

主要介绍了提高github下载速度的方法可达到2MB/s(100%有效),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

GitHub托管HTML页面

GitHub托管HTML页面,通过GitHub托管自己的项目把自己写的页面让别人访问
recommend-type

vue项目打包后上传至GitHub并实现github-pages的预览

vue项目打包后上传至GitHub,并实现github-pages的预览 1. 打包vue 项目 vue项目: 命令行输入打包命令npm run build,生成了dist文件夹: 打包完成。 打包常见问题1——项目资源无法加载 打开刚刚打包好的dist...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

云原生架构与soa架构区别?

云原生架构和SOA架构是两种不同的架构模式,主要有以下区别: 1. 设计理念不同: 云原生架构的设计理念是“设计为云”,注重应用程序的可移植性、可伸缩性、弹性和高可用性等特点。而SOA架构的设计理念是“面向服务”,注重实现业务逻辑的解耦和复用,提高系统的灵活性和可维护性。 2. 技术实现不同: 云原生架构的实现技术包括Docker、Kubernetes、Service Mesh等,注重容器化、自动化、微服务等技术。而SOA架构的实现技术包括Web Services、消息队列等,注重服务化、异步通信等技术。 3. 应用场景不同: 云原生架构适用于云计算环境下的应用场景,如容器化部署、微服务
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。