使用他们的API和curl(POST/PATCH)将视频上传到Vimeo

使用他们的API和curl(POST/PATCH)将视频上传到Vimeo,curl,vimeo,vimeo-api,Curl,Vimeo,Vimeo Api,据我所知,可以使用curl进行POST和补丁请求 职位: 补丁: 以及Vimeo API支持上传视频的POST和补丁请求 这是我迄今为止最好的猜测,关于这是如何写的 curl --request --url https://api.vimeo.com/me/videos \ --header 'Authorization: bearer {access_token}' \ --header 'Content-Type: application/json' \ --header 'Accept:

据我所知,可以使用curl进行POST和补丁请求

职位:

补丁:

以及Vimeo API支持上传视频的POST和补丁请求

这是我迄今为止最好的猜测,关于这是如何写的

curl --request --url https://api.vimeo.com/me/videos \
--header 'Authorization: bearer {access_token}' \
--header 'Content-Type: application/json' \
--header 'Accept: application/vnd.vimeo.*+json;version=3.4' \
--data '{ "upload": { "approach": "tus", "size": "{size}" }}'
我怀疑这是充满了错误,它也没有显示如何上传视频与补丁请求


正确的curl命令是什么样子的

对于使用Vimeo API的tus上传,这是一个多步骤的过程:

在Vimeo上创建视频对象 上传视频文件数据 确认Vimeo已收到您的视频文件 步骤1是对/me/videos的POST请求。如果操作正确,您将收到完整的视频响应,其中上载对象包含上载链接。在步骤2中使用upload_链接值

请注意,upload_链接应该位于Vimeo tus子域上,如files.tus.Vimeo.com。如果您在不同的Vimeo子域上获得了upload_链接,那么您的请求出现了问题,API默认采用另一种上传方法。您还可以通过检查upload对象中嵌套的approach值来验证是否返回了一个tus upload_链接,它应该返回tus

根据您的示例,-request缺少POST动词/动作。步骤1应该是这样的,还请注意-request、-header和-data可以分别与-X、-H和-d互换:

curl -X POST https://api.vimeo.com/me/videos \
  -H 'Accept: application/vnd.vimeo.*+json;version=3.4' \
  -H 'Authorization: bearer XXXXXXXXX' \
  -H 'Content-Type: application/json' \
  -d '{"upload":{"approach":"tus","size":"999999"}}'
步骤2,实际文件上传,是从步骤1返回的upload_链接的补丁,请求正文包含视频文件的原始二进制数据:

curl --request PATCH upload_link \
  -H 'Accept: application/vnd.vimeo.*+json;version=3.4' \
  -H 'Content-Type: application/offset+octet-stream' \
  -H 'Tus-Resumable: 1.0.0' \
  -H 'Upload-Offset: 0' \
  --data-binary /path/to/file.ext
步骤3是对同一上传链接的HEAD请求,不包含文件数据:

curl --request HEAD upload_link \
  -H 'Accept: application/vnd.vimeo.*+json;version=3.4' \
  -H 'Tus-Resumable: 1.0.0' \
根据返回的上载长度和上载偏移量标头,您可能需要重复步骤2,从Vimeo服务器上的最后一个字节恢复上载

Vimeo的tus上传实现的文档如下:


希望这能为你指明正确的方向

几个问题;1不记名XXXXXXXXX代表什么,如何传递身份验证密钥?另外,后续调用是否再次需要此身份验证?2如果上传失败,有没有办法重新上传,而不是进行字节分割?3我惊讶地发现我的-data/-d想法是正确的。这样发送ASCII数据真的有可能吗?再次非常感谢你。稍后我可能会有更多的问题。@Roel 1 XXXXXX是您应该插入身份验证令牌的位置,每个对api.vimeo.com的请求都需要一个令牌:。2从理论上讲,您可以执行替换/新版本上载。您可以对步骤1中返回的/versions uri进行发布,而不是发布/me/videos。替换上载文档:。3是的,你应该能够像描述的那样使用-d,检查curl文档以了解完整的细节:在步骤2:如何给出数据@TommyPenner,你能举个例子吗。我使用了以下代码:--数据二进制文件“/home/abhi/intership/vimeo/1.mp4”