【问题标题】:How to upload video from the API imgur如何从 API imgur 上传视频
【发布时间】:2019-12-05 14:46:41
【问题描述】:

我正在使用 imgur API,我有几个问题,上传 .gif 的大小限制是多少?我到处都读到图片的大小限制是 10Mb,gif 是 20Mb,但是当我尝试使用 API 上传 11Mb 的 gif 时,它告诉我它太重了。

我还尝试上传视频(.mp4,6,9Mb),我使用邮递员的以下请求

https://api.imgur.com/3/image?client_id={myclientid}

在体内

  video={mavideo.mp4}

但它在没有任何信息的情况下让我成功

{
"data": {
"errorCode": null,
"ticket": "90c70cdc"
},
"success": true,
"status": 200
}

我已按照 api 文档提出此请求

谢谢。

编辑:

好的,如果我正在使用它就可以了 https://api.imgur.com/3/upload 在邮递员中,但是当我尝试将它与这样的 ajax 一起使用时

if (fileExtension == "mp4" || fileExtension == "webm"){
     form.append('video', file);
    } else {
     form.append('img', file);
    }
$.ajax({
     url: 'https://api.imgur.com/3/upload',
     headers: {
     Authorization: "Client-ID " + ClientId },
     type: 'POST',
     data: form,
     cache: false,
     contentType: false,
     processData: false
 })

我收到了消息Access to XMLHttpRequest at 'https://api.imgur.com/3/upload' from origin 'http://localhost:3010' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. 怎么了?

【问题讨论】:

  • 你找到解决办法了吗?
  • 一点也不。 Imgur 支持告诉我在 stackoverflow 上发帖,开发人员会回答我,但它没有用。我只是避免将 Imgur 用于 webm 和 mp4

标签: imgur


【解决方案1】:

不是一个真正的答案,但我们似乎都试图同时让这个工作,所以我会分享我发现的。

您似乎也发现了,有 2 个用于上传的端点,/image/upload

上传视频时,/image 返回票证 ID。这可能是为了获取排队处理的状态。但是,没有可用的端点,您可以在其中发送票证 ID 并取回状态。

第二个端点,/upload 然而还有另外一堆问题。

虽然它确实返回了一个带有图像 id 和 url 的更有用的对象,但它似乎完全忽略了授权标头。我设法以这种方式上传的任何图像对于上传的用户来说都是空的,我在我的帐户中看不到它。 (使用 oauth2 并发送Authorization: Bearer <token>)即使我完全省略了标头,即使上传必须授权,它仍然有效。

另一个奇怪的事情是,如果我不发送 auth 标头但向查询参数添加任何内容(所以 ?some=thing 或其他)它会突然醒来并开始需要授权标头。然而,当我此时再次发送它时,我们又回到了起点,甚至 /upload 端点也开始发送票证 ID,而不是合理的响应。

【讨论】:

  • 感谢您的分享,我也不知道为什么,但在文档上apidocs.imgur.com/… /upload 是唯一带有锁定图标的请求。我曾尝试联系支持人员,但他们一直将我重定向到 stackoverflow。
  • 不确定您是否仍在寻找一种方法来执行此操作,但是:/upload 现在似乎可以工作专辑参数不会将其添加到现有专辑 - 需要为此使用端点,但它正确上传到您的帐户@Gaeguri
【解决方案2】:

这是一个 CORS 问题,需要 imgur 开发人员修复。这只是在执行客户端 JavaScript 时出现的问题,因为 curl 工作得很好:

echo 'R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7' | base64 --decode | curl --location --request POST 'https://api.imgur.com/3/upload' --header "Authorization: Client-ID $CLIENT_ID" -F 'type=file' -F 'disable_audio=0' -F 'image=@-'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    • 2016-01-12
    • 1970-01-01
    相关资源
    最近更新 更多