Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const attemptVideoUpload = (name, fileSize, auth_token) => {
- return fetch('https://api.vimeo.com/me/videos', {
- method: 'POST',
- headers: {
- 'Authorization': `bearer ${auth_token}`,
- 'Accept': 'application/vnd.vimeo.*+json;version=3.4',
- 'Content-Type': 'application/json'
- },
- body: JSON.stringify({
- upload: {
- approach: "tus",
- size: `${fileSize}`
- },
- name,
- embed: {
- logos: {
- vimeo: false,
- custom: {
- active: true,
- link: null,
- sticky: true,
- }
- }
- },
- privacy: {
- view: "disable",
- embed: "whitelist",
- download: false,
- add: false,
- comments: "anybody"
- }
- }),
- });
- };
- const uploadVimeoChunk = (url, file, bytesUploaded, chunkSize) => {
- return new Promise((resolve, reject) => {
- const reader = new FileReader();
- const sliceEnd = file.size - bytesUploaded > chunkSize ? bytesUploaded + chunkSize : file.size;
- const blob = file.slice(bytesUploaded, sliceEnd);
- reader.onloadend = event => {
- fetch(url, {
- method: 'PATCH',
- headers: {
- 'Accept': 'application/vnd.vimeo.*+json;version=3.4',
- 'Content-Type': 'application/offset+octet-stream',
- 'Tus-Resumable': '1.0.0',
- 'Upload-Offset': `${bytesUploaded}`,
- },
- body: event.target.result,
- }).then(response => {
- if (!response.ok) {
- throw new Error(response.errorMsg);
- }
- resolve(response.headers.get('Upload-Offset'));
- }).catch(error => reject(error));
- };
- reader.readAsArrayBuffer(blob);
- });
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement