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

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

  •  
  •   leonleon · 2023-09-18 06:00:44 +08:00 · 1688 次点击
    这是一个创建于 440 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    7 条回复    2023-09-20 05:46:45 +08:00
    villivateur
        1
    villivateur  
       2023-09-18 08:39:48 +08:00
    GitHub 有 API ,你可以去找找有没有符合你需求的
    superares
        2
    superares  
       2023-09-18 08:47:24 +08:00 via iPhone
    放 release ?
    shuxhan
        3
    shuxhan  
       2023-09-18 09:19:30 +08:00
    使用 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  
       2023-09-18 09:25:48 +08:00   ❤️ 1
    用 Cloudlfare Worker 写个上传到 R2, 再加上 GitHub 也很简单, 然后 curl 一条命令搞定

    curl -u "username:password" -X PUT --data-binary @filename https://example.com/blobs/filename
    GodD6366
        5
    GodD6366  
       2023-09-18 11:03:04 +08:00 via iPhone
    gist?
    skiy
        6
    skiy  
       2023-09-18 12:26:38 +08:00
    如果是传到服务器的有很多方式。

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

    2. https://github.com/schollz/croc
    点对点传输。缺点就是本地也要安装该工具。
    leonleon
        7
    leonleon  
    OP
       2023-09-20 05:46:45 +08:00
    感谢各位!最后确实是可以用 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   ·   实用小工具   ·   904 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:48 · PVG 04:48 · LAX 12:48 · JFK 15:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.