Provedor de ativos

O provedor de ativos permite armazenar e recuperar objetos na plataforma Vonage Cloud Runtime. Você pode gerar links para seus arquivos públicos, com TTLs para arquivos seguros, ou baixar o arquivo binário.

Funções

  • createDir - isso permite que você crie um diretório antes de enviar os arquivos. Veja o trecho de código aqui.
  • uploadFiles - isso permite que você envie arquivos do seu projeto para a plataforma Vonage Cloud Runtime para armazenamento de longo prazo. Aceita um retention parâmetro para definir o período de retenção do arquivo. Veja o trecho de código aqui.
  • uploadData - isso permite que você faça o upload de buffers de dados na memória diretamente, sem precisar gravar no disco primeiro. Aceita um parâmetro opcional retention parâmetro. Veja o trecho de código aqui.
  • remove - isso permite que você remova um arquivo ou diretório que tenha enviado ou criado anteriormente. Veja o trecho de código aqui.
  • list - isso permite listar os arquivos e diretórios disponíveis no seu projeto. Veja o trecho de código aqui.
  • generateLink - isso permite que você gere um link para um arquivo que está acessível ao público. Veja o trecho de código aqui.
  • getRemoteFile - isso permite que você baixe um arquivo que você já tenha enviado anteriormente em seu formato binário/bruto. Veja o trecho de código aqui.

Prazos de retenção de arquivos

Ambos uploadFiles e uploadData aceitar um opcional retention parâmetro para controlar por quanto tempo um arquivo fica armazenado. Se omitido, aplica-se o tempo de retenção padrão da plataforma. Importe o FILE_RETENTION_PERIOD enum do SDK:

import { Assets, FILE_RETENTION_PERIOD } from '@vonage/vcr-sdk';
Valor Duração
FILE_RETENTION_PERIOD.ONE_DAY 1 dia
FILE_RETENTION_PERIOD.SEVEN_DAYS 7 dias
FILE_RETENTION_PERIOD.ONE_MONTH 1 mês
FILE_RETENTION_PERIOD.THREE_MONTHS 3 meses
FILE_RETENTION_PERIOD.SIX_MONTHS 6 meses
FILE_RETENTION_PERIOD.ONE_YEAR 1 ano

Inicializando o provedor de ativos

Para usar o Provedor de Ativos, é necessário criar uma instância do provedor por meio de uma sessão:

const session = vcr.createSession();
const assets = new Assets(session);

Uso

Por exemplo, para usar o provedor Assets para fazer o upload de um arquivo a partir de um formulário HTML usando busboy:

app.post('/upload', async (req, res, next) => {
    try { 
        const bb = busboy({ headers: req.headers });
        var filePath;

        bb.on('file', (name, file, info) => {
            filePath = path.join(os.tmpdir(), `image.png`); 
            file.pipe(fs.createWriteStream(filePath));
        });

        bb.on('close', async function() {
            const session = vcr.createSession();
            const assets = new Assets(session);

            await assets.uploadFiles([filePath], '/imgs');
            res.end(); 
        });

        req.pipe(bb);
    } catch (error) {
        next(error);
    }
});

Em seguida, para recuperar o arquivo:

const session = vcr.createSession();
const assets = new Assets(session);
const file = await assets.getRemoteFile('/imgs/image.png');

Ou para gerar um link para o arquivo:

const session = vcr.createSession();
const assets = new Assets(session);
const fileData = await assets.generateLink('/imgs/image.png');