Roe*_*aar 2 curl vimeo vimeo-api
据我了解,可以使用curl来发出POST和PATCH请求;
帖子:https ://gist.github.com/subfuzion/08c5d85437d5d4f00e58
PATCH:如何将 PATCH 动词与 curl 一起使用
Vimeo API 支持 POST 和 PATCH 请求上传视频;
https://developer.vimeo.com/api/upload/videos
到目前为止,这是我对如何编写的最佳猜测;
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}" }}'
Run Code Online (Sandbox Code Playgroud)
我怀疑这充满了错误,而且它也没有显示如何使用 PATCH 请求上传视频。
正确的curl 命令是什么样的?
对于使用 Vimeo API 进行上传,这是一个多步骤的过程:
步骤 1 是对 的 POST 请求/me/videos。如果操作正确,您将收到完整的视频响应,其中"upload"包含一个包含"upload_link". 使用upload_link步骤 2 的值。
(请注意,upload_link应该位于 Vimeo“tus” 子域上,例如files.tus.vimeo.com。如果您在不同的 Vimeo 子域上获得upload_link,则表明您的请求出现问题,并且 API 默认采用另一种上传方法。您还可以验证您是否upload_link通过检查对象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"}}'
Run Code Online (Sandbox Code Playgroud)
步骤 2,实际的文件上传,是步骤 1 返回的 PATCH upload_link,请求正文包含视频文件的原始二进制数据:
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
Run Code Online (Sandbox Code Playgroud)
步骤 3 是对相同的 HEAD 请求upload_link,不带文件数据:
curl --request HEAD upload_link \
-H 'Accept: application/vnd.vimeo.*+json;version=3.4' \
-H 'Tus-Resumable: 1.0.0' \
Run Code Online (Sandbox Code Playgroud)
根据返回的upload-length和upload-offset标头,您可能需要重复步骤 2,从 Vimeo 服务器上的最后一个字节恢复上传。
Vimeo 的 tus 上传实现文档可在此处找到:https ://developer.vimeo.com/api/upload/videos#resumable-approach
希望这能为您指明正确的方向!