V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
leonleon
V2EX  ›  程序员

从任何位置传递自己的脚本文件到 GitHub/服务器?

  •  
  •   leonleon · 223 天前 · 1487 次点击
    这是一个创建于 223 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最好的方案是传递到 GitHub 的仓库,但是只想传递某个文件,不想初始化自己的本地文件夹,或者是使用 scp 到自己的服务器上进行备份,有什么更好的解决方案么?

    7 条回复    2023-09-20 05:46:45 +08:00
    villivateur
        1
    villivateur  
       223 天前
    GitHub 有 API ,你可以去找找有没有符合你需求的
    superares
        2
    superares  
       223 天前 via iPhone
    放 release ?
    shuxhan
        3
    shuxhan  
       223 天前
    使用 api 可以直接上传文件。

    PUT https://api.github.com/repos/{user}/imgs/contents/{path}/{filename}

    {
    "message": "提交说明",
    "content": "base64 编码的文件内容",
    "sha": "文件的 blob sha"
    }

    content:文件内容的 base64 编码后的字符串
    sha:文件更新或删除时必填,先用 GET 接口查询文件信息,可在响应体中获取
    ratazzi
        4
    ratazzi  
       223 天前   ❤️ 1
    用 Cloudlfare Worker 写个上传到 R2, 再加上 GitHub 也很简单, 然后 curl 一条命令搞定

    curl -u "username:password" -X PUT --data-binary @filename https://example.com/blobs/filename
    GodD6366
        5
    GodD6366  
       223 天前 via iPhone
    gist?
    skiy
        6
    skiy  
       223 天前
    如果是传到服务器的有很多方式。

    1. https://github.com/dutchcoders/transfer.sh/
    自己跑个 docker 。把那个保存目录映射到宿主机

    2. https://github.com/schollz/croc
    点对点传输。缺点就是本地也要安装该工具。
    leonleon
        7
    leonleon  
    OP
       221 天前
    感谢各位!最后确实是可以用 GitHub 的 API 进行文件的上传,使用 PUT ,最终结构类似这样:curl -H "Authorization: token " --request PUT --data '{ "message": "", "content": "base64 编码的文件内容", "branch": "main" }' https://api.github.com/repos/user/repos/contents/filename ,但是还是要生成 base64 编码后的字符串,比较麻烦
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3183 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:41 · PVG 20:41 · LAX 05:41 · JFK 08:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.