Advertisement
r-begey_inoxoft

Untitled

Feb 21st, 2020
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const attemptVideoUpload = (name, fileSize, auth_token) => {
  2.     return fetch('https://api.vimeo.com/me/videos', {
  3.         method: 'POST',
  4.         headers: {
  5.             'Authorization': `bearer ${auth_token}`,
  6.             'Accept': 'application/vnd.vimeo.*+json;version=3.4',
  7.             'Content-Type': 'application/json'
  8.         },
  9.         body: JSON.stringify({
  10.             upload: {
  11.                 approach: "tus",
  12.                 size: `${fileSize}`
  13.             },
  14.             name,
  15.             embed: {
  16.                 logos: {
  17.                     vimeo: false,
  18.                     custom: {
  19.                         active: true,
  20.                         link: null,
  21.                         sticky: true,
  22.                     }
  23.                 }
  24.             },
  25.             privacy: {
  26.                 view: "disable",
  27.                 embed: "whitelist",
  28.                 download: false,
  29.                 add: false,
  30.                 comments: "anybody"
  31.             }
  32.         }),
  33.     });
  34. };
  35.  
  36. const uploadVimeoChunk = (url, file, bytesUploaded, chunkSize) => {
  37.     return new Promise((resolve, reject) => {
  38.         const reader = new FileReader();
  39.         const sliceEnd = file.size - bytesUploaded > chunkSize ? bytesUploaded + chunkSize : file.size;
  40.         const blob = file.slice(bytesUploaded, sliceEnd);
  41.         reader.onloadend = event => {
  42.             fetch(url, {
  43.                 method: 'PATCH',
  44.                 headers: {
  45.                     'Accept': 'application/vnd.vimeo.*+json;version=3.4',
  46.                     'Content-Type': 'application/offset+octet-stream',
  47.                     'Tus-Resumable': '1.0.0',
  48.                     'Upload-Offset': `${bytesUploaded}`,
  49.                 },
  50.                 body: event.target.result,
  51.             }).then(response => {
  52.                 if (!response.ok) {
  53.                     throw new Error(response.errorMsg);
  54.                 }
  55.                 resolve(response.headers.get('Upload-Offset'));
  56.             }).catch(error => reject(error));
  57.         };
  58.         reader.readAsArrayBuffer(blob);
  59.     });
  60. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement