首页 > 解决方案 > 如何使用 curl 将图像上传到 imgur.com 中的帐户?

问题描述

只是。

curl:用于操作 URL 的命令行工具

imgur.com :允许上传和共享图像的服务

标签: curlimgur

解决方案


直截了当地回答。

# curl -X POST -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -F "image=@PATH_TO_YOUR_IMAGE_FILE" https://api.imgur.com/3/upload

例子

# curl -X POST -H "Authorization: Bearer 9c9d....9b41f" -F "image=@/tmp/pet.png" https://api.imgur.com/3/upload

您将收到如下所示的 JSON 响应

{"status":200,"success":true,"data":{"id":"m1Jv","deletehash":"zMI6VN","account_id":2583,"account_url":"ruxr","ad_type":null,"ad_url":null,"title":null,"description":null,"name":"","type":"image/png","width":169,"height":120,"size":3371,"views":0,"section":null,"vote":null,"bandwidth":0,"animated":false,"favorite":false,"in_gallery":false,"in_most_viral":false,"has_sound":false,"is_ad":false,"nsfw":null,"link":"https://i.imgur.com/m1v.png","tags":[],"datetime":16756,"mp4":"","hls":""}}

并且在

"link":"https://i.imgur.com/m1v.png"

你得到你的答案(这个链接不起作用,只是一个例子)

您可以通过以下方式轻松获取该链接jq

# echo "$response_json" | jq  --raw-output '.data.link'

一些背景。

身边有很多人问这个问题。

我检查并重新检查了 API 文档,但找不到答案。

我使用 imgur_uploader.py 有一段时间了,但现在由于速率限制(或者我的令牌已过期)而开始失败,但情况并非如此,因为我每 x 分钟只上传一张图片。其他人也面临着类似的问题。

File "/home/me/.local/lib/python3.5/site-packages/imgurpython/client.py", line 596, in upload_from_path
    return self.make_request('POST', 'upload', data, anon)
File "/home/me/.local/lib/python3.5/site-packages/imgurpython/client.py", line 153, in make_request
    raise ImgurClientRateLimitError()
imgurpython.helpers.error.ImgurClientRateLimitError: Rate-limit exceeded!

经过一番挖掘,我让 python 脚本再次工作,但图像没有上传到我的帐户中。于是我又开始寻找。

在这里[A] 我找到了答案

要获取您的 Access_token,请使用[B],然后检查生成的 url

[A] https://planspace.org/2013/01/13/upload-images-to-your-imgur-account/

[B] https://stackoverflow.com/a/61343188/4752223


推荐阅读