strapi-provider-upload-vimeo
Version:
Strapi Plugin for uploading videos to vimeo
79 lines (74 loc) • 1.75 kB
JavaScript
const Vimeo = require("./utils/upload.js");
module.exports = {
init(config) {
var client = new Vimeo(
config.clientId,
config.clientSecret,
config.accessToken
);
return {
upload(file) {
return new Promise((resolve, reject) => {
client
.uploadFromBinary({
video: file.buffer,
name: file.hash,
description: file.alternativeText,
})
.then((res) => {
if (config.premium) {
client
.getFromId(res.data.uri)
.then((res) => {
for (i = 0; i < res.data.files.length; i++) {
if (
res.data.files[i].rendition == "360p" ||
res.data.files[i].rendition == "540p" ||
res.data.files[i].rendition == "720p" ||
res.data.files[i].rendition == "1080p"
) {
file.url = res.data.files[i].link;
break;
}
}
if (file.url == undefined) {
file.url = res.data.link;
}
file.provider_metadata = {
link: res.data.link,
files: res.data.files,
};
resolve();
})
.catch((err) => {
console.log("get", err);
reject();
});
} else {
file.url = res.data.link;
resolve();
}
})
.catch((err) => {
console.log(err);
reject();
});
});
},
delete(file) {
str = file.provider_metadata.link;
client.vimeoClient.request(
{
method: "DELETE",
path: "/videos/" + str.split("/")[str.split("/").length - 1],
},
function (error, body, status_code, headers) {
if (error) {
console.log(error);
}
}
);
},
};
},
};