Série Dropbox: Enviando arquivos para o Dropbox via Java Application

Olá Pessoal,

Venho trabalhando há um bom tempo com API do Dropbox em web apps. No post de hoje vamos ver como enviar um arquivo para uma conta no dropbox via Java Application. É um verdadeiro upload via console.

Lets go…
O cenário

Imagine que você queira ter um upload na sua aplicação. Nada de diferente aqui, mas sabemos que há várias formas de fazer isso e temos bastante frameworks Java que nos ajudam. Mas, como fazer de forma rápida e segura? Aqui usamos o serviço do Dropbox para armazenamento de arquivos que vem da aplicação. Isso nos ajuda em vários pontos:

1. Segurança: Certamente o time do dropbox é preocupado com isso;

2. Histórico: Por default o dropbox mantém um histórico do arquivo, então em caso de precisar retornar uma versão é muito simples;
3. Baixo custo de desenvolvimento: API do dropbox é bem documentada e tem suporte a diversas linguagens. O que teremos que fazer é sempre implementar algo muito específico ou encapsular algumas features mais comuns para evitar de ter código repetido em várias partes da aplicação;
Ai nasceu no laboratorio da ITS a easyJavaDropboxAPI(https://github.com/ITSStartup/easyJavaDropboxAPI), que nos ajuda no dia a dia. A API ainda está nas primeiras versões e recentemente acabou de sair a versão 1.1.0 com algumas funcionalidades e melhorias e uma delas é permitir salvar arquivos no dropbox (a versão anterior nos permitia apenas ler um arquivo). O método na API que salva um arquivo é assim:

 

Vamos ver na prática

Primeiro Passo

Vamos usar o projeto easyJavaDropboxAPIExample que vimos no post: https://blog.camilolopes.com.br/serie-dropbox-conectando-com-dropbox-api-java/

Então você precisa ter feito os passos descritos no post acima.

Segundo Passo

Se fez o passo 1, certamente consegue listar os arquivos.

Terceiro Passo

Atualize o pom.xml para usar a versão mais nova da API:

<dependencies>
<dependency>
<groupId>com.its.api</groupId>
<artifactId>easyJavaDropboxAPI</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>

 

Quarto Passo

Agora vamos adicionar o código que fará o upload. Não vamos modificar o código existente, apenas adicionar. No método main adicone as seguintes linhas:

//upload service
EasyJavaDropBoxServiceImpl upload = new EasyJavaDropBoxServiceImpl(token);
saveToDropbox(upload);

 

 O código com o método main completo ficou assim:

public static void main(String[] args) throws DbxException, IOException {
String token = "your token here";
String path = "/";
EasyJavaDropBoxService easyJavaDropBoxService = new EasyJavaDropBoxServiceImpl(path, token);

List<DbxEntry> listFiles = easyJavaDropBoxService.listFiles();
for (DbxEntry file : listFiles) {
System.out.println(file.name);
}
//upload service
EasyJavaDropBoxServiceImpl upload = new EasyJavaDropBoxServiceImpl(token);
saveToDropbox(upload); 
}

 

Lembre-se de que é preciso gerar o token para sua conta. Quando tiver o token coloque como valor na variável token. Agora vamos criar o método que salva o arquivo no dropbox:

private static void saveToDropbox(EasyJavaDropBoxService uploadEasyJavaDropBoxService) throws DbxException, IOException {
//creating new file
File file = new File("camilotestedropbox2.txt");
file.createNewFile();
//writing content in file
FileWriter fileWriter = new FileWriter(file);
fileWriter.write("Test upload to dropbox api");
fileWriter.close();

try {
FileInputStream fileInputStream = new FileInputStream(file);
String fileName = file.toString();
//calling method from easyJavaDropboxAPI
uploadEasyJavaDropBoxService.saveToDropbox(fileName, fileInputStream); 
} catch (FileNotFoundException e) {
e.printStackTrace();
}

}

 

Testando

Agora chegou a hora de testar. Rode a aplicação e vamos ver a saída no console:

dropboxuploadconsole

 

Na imagem acima são listados os arquivos que tenho no meu dropbox. Agora vamos ver se no dropbox tem o novo arquivo que criei:

 

dropboxfileuploadeddone

Pronto, arquivo enviado para o dropbox. Simples, não?

O projeto foi atualizado no Github:

https://github.com/ITSStartup/easyJavaDropboxAPIExample

Vou ficando por aqui. Espero que tenham gostado do post.

Abracos, see ya!!!

Um comentário em “Série Dropbox: Enviando arquivos para o Dropbox via Java Application”

  1. Ótimo artigo amigo, porém não entendi a parte uploadEasyJavaDropBoxService.saveToDropbox(fileName, fileInputStream); já que o saveToDropbox() é um método que foi criado. quando chamo ele pela instancia de uploadEasyJavaDropBoxService ele não existe, como resolvo isso?

Deixe um comentário

O seu endereço de e-mail não será publicado.