function upload(midia) {
return new Promise(async (resolve, reject) => {
try {
// Determina a extensão automaticamente se necessário
let { ext } = await fromBuffer(midia);
let form = new FormData();
form.append('file', midia, 'tmp.' + ext);
// Faz upload para o servidor NetherHost sem autenticação
await fetch('https://cloud.netherhost.com.br/upload', {
method: 'POST',
body: form
})
.then(response => response.json())
.then(data => {
// O backend retorna { url: 'https://…' }
resolve(data.url);
})
.catch(erro => reject(erro));
} catch (erro) {
reject(erro);
}
});
}
Com login
Para utilizar a API autenticada, faça login na plataforma e utilize o token retornado. Substitua
o parâmetro token abaixo pelo seu token de sessão (encontrado no localStorage após o login).
function uploadAuthenticated(midia, token) {
return new Promise(async (resolve, reject) => {
try {
let { ext } = await fromBuffer(midia);
let form = new FormData();
form.append('file', midia, 'tmp.' + ext);
// Inclui o token de autenticação no cabeçalho Authorization
await fetch('https://cloud.netherhost.com.br/upload', {
method: 'POST',
body: form,
headers: {
'Authorization': 'Bearer ' + token
}
})
.then(resp => resp.json())
.then(data => {
resolve(data.url);
})
.catch(erro => reject(erro));
} catch (erro) {
reject(erro);
}
});
}