我目前正在使用 Github API 制作一个 iOS github 客户端应用程序。 我想实现用图像创建问题的功能。我的问题是如何通过 API 上传问题评论的图像。我们可以通过浏览器在 github.com 中通过拖放的方式上传图像,如下图所示:
我想用这个
https://cloud.githubusercontent.com/assets/~~~.PNG
。
有什么方法可以通过API或其他方式上传到https://cloud.githubusercontent.com吗?
到2020年2月,仍然没有官方解决方案可以通过API上传文件以用于github问题。
简单的解决方案是使用存储库分支(您可以将其命名为
assets
)。您可以轻松地从 github issues 链接到它们,只需使用上次提交 SHA 的原始链接即可:
https://github.com/ORG/REPO/raw/LAST_SHA/PATH
这种链接将始终正确地呈现在问题正文中。
我使用的解决方案是将图像推送到存储库,并在问题中使用相对链接。
您可以仅为图像创建一个孤立分支,并将其推送到
refs/heads
之外的引用,这样该引用就不会克隆到普通克隆中(您需要 git clone --mirror
)。
它看起来像这样(概念验证):
git checkout --orphan images
git rm -rf *
# copy your images to the repo
git add <your images>
git commit -m "add images"
git push origin HEAD:refs/images/image-ref
git log --format=%H
# note the hash
然后在问题中,使用上面的提交哈希来使用相对链接:
![alt text](../blob/<HASH HERE>/path/to/your/image.png?raw=true)
曾经我也尝试过寻找一种方法来实现它,但是没有任何可用的方法来做到这一点。我正在做一些额外的测试,以发现您可以在 devtool-network 面板中观察拖放操作。
我发现https://github.com/upload/assets/21842410是用PUT方法请求的,它的响应是{"id":21842410,"name":"-2.png","size" :1261,“content_type”:“image/png”,“href”:“https://cloud.githubusercontent.com/assets/3518853/21842410/7c3f6812-d79b-11e6-8209-e49b44aaa883.png”,“原始名称":null}
我还没有完成我的测试,如果这对你有启发并且你有时间实现任何演示,请告诉我你的结果。 :)
这是做不到的。您唯一的机会是将图像上传到您自己的 s3 存储桶或类似存储桶,并在评论/问题中链接该存储桶。我认为 github 会收集这些内容并缓存它们,以便在 github.com 上获得更好的用户体验