Pular para o conteúdo principal

Dropbox

Esta seção descreve como o Plasfran ERP integra-se com o Dropbox para realizar operações de upload, download e backup automático de arquivos na nuvem.


Visão Geral

A integração com o Dropbox permite:

  • Armazenamento seguro de arquivos (relatórios, backups, notas fiscais, etc.)
  • Acesso controlado aos arquivos via API
  • Automatização de rotinas de envio e recuperação

Autenticação com o Dropbox

Antes de utilizar os métodos de upload ou download, o Plasfran ERP precisa obter um token de acesso para a conta do Dropbox. Isso é feito via uma requisição POST para o endpoint de token da API do Dropbox.

Endpoint
https://api.dropboxapi.com/oauth2/token

Descrição
A resposta conterá um JSON com o token de acesso (access_token) a ser utilizado nos métodos de integração com a API do Dropbox.

Upload de Arquivos

Os uploads de arquivos no Plasfran ERP utilizam o método:

    var dbx = new DropboxClient(appToken);
await dbx.Files.UploadAsync(...);

Esse método é chamado de diferentes formas conforme a origem do arquivo:

1. Upload via Web (IFormFile)

Método Dropbox usado:

  • Files.UploadAsync(): Realiza o upload do arquivo.

  • Sharing.CreateSharedLinkWithSettingsAsync(): Gera link compartilhável.

    var updated = await dbx.Files.UploadAsync(
caminhoArquivoUpload,
WriteMode.Overwrite.Instance,
body: stream);

var result = await dbx.Sharing.CreateSharedLinkWithSettingsAsync(updated.PathDisplay);

2. Upload de Arquivo Local

Métodos Dropbox usados:

  • Leitura do arquivo via File.ReadAllBytesAsync()

  • Upload com Files.UploadAsync()

  • Geração de link com Sharing.CreateSharedLinkWithSettingsAsync()

    var stream = new MemoryStream(await File.ReadAllBytesAsync(caminhoArquivo));
await dbx.Files.UploadAsync(...);
await dbx.Sharing.CreateSharedLinkWithSettingsAsync(...);

3. Upload a partir de MemoryStream

Permite fazer upload direto da memória.

Métodos usados:

  • Files.UploadAsync()

  • Sharing.CreateSharedLinkWithSettingsAsync()

4. Upload de Arquivo em Base64

Decodifica o conteúdo em Base64 para byte[] e envia:

    byte[] bytes = Convert.FromBase64String(base64);
using var stream = new MemoryStream(bytes);
await dbx.Files.UploadAsync(...);

Download de Arquivos

Métodos Dropbox usados:

  • Files.DownloadAsync(): Faz o download do arquivo.

  • GetContentAsStreamAsync(): Obtém o conteúdo como Stream.

    using var response = await dbx.Files.DownloadAsync(caminhoArquivoDropbox);
using var fileStream = File.Create(caminhoArquivoLocal);
await (await response.GetContentAsStreamAsync()).CopyToAsync(fileStream);

Documentação oficial Dropbox.NET

https://www.dropbox.com/developers/documentation/dotnet#overview