Как мне отправить двоичный файл при загрузке видео методом TUS? - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь загрузить видео с использованием vanilla js, но мне не удается заставить его работать.

Я пытался использовать функцию FormData (), но она не работает, так как я получаю следующую ошибку в ответе: index.js:46 Uncaught (in promise) SyntaxError: Unexpected end of JSON input. Хотя я получаю код статуса 204.

Я также попытался удалить заголовок Content-Type, но если я это сделаю, я получу код состояния 400.

const formData = new FormData()
formData.append("untitled","./video.mp4")

const UploadVideo = (() => {
    const size = 10498677
    return fetch('https://api.vimeo.com/me/videos', {
        method: "POST",
        headers: {
            "Content-Type": "application/json",
            "Authorization": "Bearer 0541d1a97b7ed729ac8fcaf909b7e9f1",
            "Accept": "application/vnd.vimeo.*+json;version=3.4"
        },
        body: JSON.stringify({
            "upload": {
                "approach": "tus",
                "size": size
            }
        })
    })
        .then(response => response.json())
        .then(response => {
            const url= response.upload.upload_link
            PatchUpload(url,size,0)
        })
})();

const PatchUpload = (url, size, offset) => {
    return fetch(url, {
        method: "PATCH",
        headers: {
            "Tus-Resumable": "1.0.0",
            "Upload-Offset": offset,
            "Content-Type": "application/offset+octet-stream",
            "Accept": "application/vnd.vimeo.*+json;version=3.4"
        },
        body: formData
    })
    .then(response=>response.json())
    .then(response=>{
        console.log(response)
    })
}

Есть ли какие-нибудь советы о том, как передать двоичный файл в vimeo?

...