【发布时间】:2015-09-04 06:23:30
【问题描述】:
我正在开发一个使用出色的 Vimeo 上传 API 的 Adobe Air 应用程序。上传效果很好。
但是,我现在尝试恢复上传,但不明白为什么它不起作用。有人可以帮我理解为什么吗?
这是我在文档中提出的流程。代码为 AS3:
验证上传
var r:URLRequest = new URLRequest(_ticket.upload_link_secure);
r.requestHeaders = [
new URLRequestHeader("Authorization", "bearer " + TOKEN),
new URLRequestHeader("Content-Length", "0"),
new URLRequestHeader("Content-Range", "bytes */*"),
];
r.contentType = "video/mp4"
r.method = URLRequestMethod.PUT;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.addEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS, _resumeProgressComplete);
loader.load(r);
==> the result of the request :
status 308
the range header is bytes=0-474295
继续上传
我的视频大小:11685783
发送字节数组的大小:6533957
范围标头:5151826-11685783/11685783
内容长度:6533957(我也尝试过 ByteArray size +1,如文档所示)
var r:URLRequest = new URLRequest(_ticket.upload_link_secure);
r.requestHeaders = [
new URLRequestHeader("Authorization", "bearer " + TOKEN),
new URLRequestHeader("Content-Length", contentLength),
new URLRequestHeader("Content-Range", range),
];
r.contentType = "video/mp4"
r.method = URLRequestMethod.PUT;
r.data = ba;
_urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
_urlLoader.addEventListener(Event.COMPLETE, _resumeComplete);
_urlLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, _resumeHTTPStatus);
_urlLoader.load(r);
请求的结果状态为200
在上传视频的缺失部分时,我会异步发送请求以获取上传进度
var r:URLRequest = new URLRequest(_ticket.upload_link_secure);
r.requestHeaders = [
new URLRequestHeader("Authorization", "bearer " + TOKEN),
new URLRequestHeader("Content-Length", "0"),
new URLRequestHeader("Content-Range", "bytes */*"),
];
r.contentType = "video/mp4"
r.method = URLRequestMethod.PUT;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.addEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS, _uploadProgressComplete);
loader.load(r);
结果:
bytes=0-0
bytes=0-228970
bytes=0-441585
bytes=0-556070
...
bytes=0-6247610
bytes=0-6492935
bytes=0-6533957
上次验证完成,我发送想完成上传
var r:URLRequest = new URLRequest("https://api.vimeo.com/" + _ticket.complete_uri);
r.requestHeaders = [
new URLRequestHeader("Authorization", "bearer " + TOKEN)
];
r.method = URLRequestMethod.DELETE;
_urlLoader.addEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS, _completeUploadComplete);
_urlLoader.addEventListener(Event.COMPLETE, _completeUploadCompleteData);
_urlLoader.load(r);
这就是我收到 400 状态和以下错误消息的地方:
{"error":"您的视频文件无效。您上传的文件格式无效,或者您的上传不完整。请确保在将上传标记为完成之前验证您的上传。"}
我的代码有问题吗,我按照文档进行操作?
【问题讨论】:
标签: actionscript-3 vimeo vimeo-api