如何通过 Github API 上传图像以在问题评论中使用

问题描述 投票:0回答:4

我目前正在使用 Github API 制作一个 iOS github 客户端应用程序。 我想实现用图像创建问题的功能。我的问题是如何通过 API 上传问题评论的图像。我们可以通过浏览器在 github.com 中通过拖放的方式上传图像,如下图所示:

image_upload_in_browser

我想用这个

https://cloud.githubusercontent.com/assets/~~~.PNG
。 有什么方法可以通过API或其他方式上传到https://cloud.githubusercontent.com吗?

ios github
4个回答
6
投票

到2020年2月,仍然没有官方解决方案可以通过API上传文件以用于github问题。

简单的解决方案是使用存储库分支(您可以将其命名为

assets
)。您可以轻松地从 github issues 链接到它们,只需使用上次提交 SHA 的原始链接即可:

https://github.com/ORG/REPO/raw/LAST_SHA/PATH

这种链接将始终正确地呈现在问题正文中。


3
投票

我使用的解决方案是将图像推送到存储库,并在问题中使用相对链接。

您可以仅为图像创建一个孤立分支,并将其推送到

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)

1
投票

曾经我也尝试过寻找一种方法来实现它,但是没有任何可用的方法来做到这一点。我正在做一些额外的测试,以发现您可以在 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}

我还没有完成我的测试,如果这对你有启发并且你有时间实现任何演示,请告诉我你的结果。 :)


0
投票

这是做不到的。您唯一的机会是将图像上传到您自己的 s3 存储桶或类似存储桶,并在评论/问题中链接该存储桶。我认为 github 会收集这些内容并缓存它们,以便在 github.com 上获得更好的用户体验

© www.soinside.com 2019 - 2024. All rights reserved.