Я работаю над приложением Adobe Air, использующим блестящий API загрузки Vimeo. Загрузка работает очень хорошо.Vimeu resume PUT upload issue on air app
Однако теперь я пытаюсь возобновить загрузку и не могу понять, почему она не работает. Может ли кто-нибудь помочь мне понять, почему?
Вот мой процесс, предложенный в документе. Кодекс 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
Размер ByteArray высылается: 6533957
Заголовок Диапазон: 5151826-11685783/11685783
Длина контента: 6533957 (я также пробовал размер ByteArray +1, как показано на th е док)
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 статуса сообщения об ошибке ниже:
{ «ошибка»: "Ваше видео файл не является действительным. Либо вы загрузили неверный формат файла, либо ваша загрузка не завершена. . Убедитесь, что вы подтвердите загрузку, прежде чем отметить его как полный "}
Есть ли что-то не так в моем коде, я следовал документации