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