使用GitHub的API实现文件上传--李渣渣(lizaza.cn)

        最近搭建了一个自己的博客网站和一个在线图片格式转换工具,经常写博客的时候需要上传图片,在线转换工具也需要一定的空间来临时存放图片文件。服务器的存储空间又比较有限,于是就想着将图片存储的GitHub上,来节省服务器的空间。

        一开始使用的是PicGo来上传文件,每次都要单独复制网址使用起来不方便。后来发现GitHub有API可以上传文件,那这件事情就简单的多了。

接下来简单介绍一下使用API上传文件的过程:

1、创建一个token(也可以使用账号和密码,但是安全性得不到保障)

登录自己的账号,然后进入token创建网站https://github.com/settings/tokens

创建完成后一定要复制你的token,他只显示一次!

2、调用api接口上传文件(在此以python进行示例)

官方文档v3:https://developer.github.com/v3/repos/contents/

V4:https://developer.github.com/v4/

完整代码

import requests
import base64
import json


# 读取文件
def open_file(file_path):
    with open(file_path, 'wb+') as f:
        return f.read()


# 将文件转换为base64编码,上传文件必须将文件以base64格式上传
def file_base64(data):
    data_b64 = base64.b64encode(data).decode('utf-8')
    return data_b64


# 上传文件
def upload_file(file_data):
    file_name = ""  #文件名
    token = "[token]"
    url = "https://api.github.com/repos/[user]/[repo]/contents/[path]/"+file_name  # 用户名、库名、路径
    headers = {"Authorization": "token " + token}
    content = file_base64(file_data)
    data = {
        "message": "message",
        "committer": {
            "name": "[user]",
            "email": "user@163.com"
        },
        "content": content
    }
    data = json.dumps(data)
    req = requests.put(url=url, data=data, headers=headers)
    req.encoding = "utf-8"
    re_data = json.loads(req.text)
    print(re_data)
    print(re_data['content']['sha'])
    print("https://cdn.jsdelivr.net/gh/[user]/[repo]/[path]"+file_name)
# 在国内默认的down_url可能会无法访问,因此使用CDN访问


if __name__ == '__main__':
    fdata = open_file('cloud.jpg')
    upload_file(fdata)

注意:上传的文件名不要有重复,否则会导致上传失败(可以使用当前时间+随机数的方式来避免)

版权声明:该文章内容为作者原创,如有转载请标明出处lizaza.cn

### 回答1: "intel-5300-csi-github-master.tar.gz"是一个文件的名称,其中包含有关英特尔WiFi适配器的驱动程序和CSI数据集的源代码。CSI代表信道状态信息,这些数据可以揭示无线信道的细节信息,例如距离,方向和反射情况等,而这对于WiFi定位和跟踪等任务非常有用。 该文件通过GitHub提供,是一个开源项目的一部分,正在由全球的开发人员进行维护和更新。用户可以从中获得源代码,自由地修改和自定义它以适应不同的应用程序。这使得该软件更具灵活性和可扩展性,并且易于与其他开源项目集成。 要使用此软件,用户需要使用适当的工具来解压缩压缩文件,然后按照文档中的说明来安装和配置驱动程序和CSI数据集。在安装完成后,用户可以使用应用程序来收集CSI数据并进行分析,从而获得有关无线信道的更多信息。 总之,"intel-5300-csi-github-master.tar.gz"是一个开源的CSI数据集和WiFi适配器驱动程序的源代码,具有很高的灵活性和可扩展性。它可用于WiFi定位,跟踪和无线信道分析等领域,为开发人员提供灵活性,以创建定制的解决方案。 ### 回答2: intel-5300-csi-github-master.tar.gz是一个开源软件包,由英特尔公司开发和维护,用于处理无线网络设备采集的信号数据。CSI是“通道状态信息”的缩写,是通过无线信道测量获得的数据,可以用于无线信号传输评估、无线信号强度定位、人体运动检测和跟踪等领域。这个软件包主要提供了处理CSI数据的工具和附加模块,方便对CSI数据进行分析和应用。 软件包中包含了CSI数据采集工具、信道估计算法、信道反演算法和数据分析工具等模块。用户可根据实际应用需求进行自定义选择和配置,实现各种CSI数据处理和应用功能。此外,该软件包还有丰富的使用手册和示例,方便用户学习和使用。软件包支持多种操作系统和无线网卡型号,可应用于多种不同场景和需求。 intel-5300-csi-github-master.tar.gz具有自由开放、可定制性高、功能丰富等优点,适合无线通信领域的研究和开发人员使用。同时,该软件包也促进了无线通信领域的发展和创新,为无线通信技术的进一步应用和发展提供了有力支持。 ### 回答3: intel-5300-csi-github-master.tar.gz是英特尔无线网卡5300驱动的代码库,其中包含了CSI(Channel State Information)工具和驱动程序的源代码。CSI是一种无线技术,它能够实时地获取到无线信号的传输状态信息,包括信道估计、信道响应和信道特性等等,而这些信息对无线通信系统的优化和自适应性至关重要。 通过使用intel-5300-csi-github-master.tar.gz提供的代码库,用户可以轻松地将CSI功能集成到无线电网络中。这个代码库是开源的,具有高度的灵活性和可扩展性,可以适应各种无线应用场景和环境。 使用这个代码库需要一定的编程基础和网络知识,同时还需要对英特尔无线网卡5300驱动程序有一定的了解。对于意图开发新的无线应用和优化现有无线系统的开发人员,这个代码库是一个很好的起点,可以帮助他们快速实现CSI功能,并在实践中不断优化。 综上所述,intel-5300-csi-github-master.tar.gz 是一个开源的CSI工具和驱动程序的代码库,能够帮助用户快速实现CSI功能。对于开发人员来说,这个代码库具有很大的价值,可帮助他们开发出更智能、更优化的无线应用系统。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值