Fellipe

4 minute read

O Dropbox

Armazenar arquivos na nuvem é uma prática muito comum nos dias de hoje. O Dropbox é um dos muitos exemplos de repositórios baseados no conceito de “computação em nuvem”, que oferece o serviço para compartilhar e armazenar arquivos.

Não é novidade que a “computação em nuvem” tem impulsionado muitos projetos, em especial projetos de Big Data ocorrendo em diversos setores e existe um volume absurdo de dados sendo gerados.

Então essa habilidade de lidar com arquivos em nuvem parece bem razoável para um cientista de dados. Mesmo que nossos repositórios não sejam repositórios que se qualifiquem como “Big Data” é interessante como algumas práticas podem ser úteis de uma maneira geral.

Já existem diversas opções de para extrair grandes volumes de dados que estão disponíveis gratuitamente, como o projeto da elastic com a stack ELK.

Mas quero abordar aqui sobre o pacote rdrop2, ele apresenta funções muito úteis para gerenciar os arquivos armazenados na nuvem diretamente de dentro do RStudio.

O pacote rdrop2

Procurei pela internet alguma página que fornecesse as instruções do pacote em português mas não encontrei. Então trago aqui algumas das instruções e funções úteis que estão disponíveis no manual do pacote.

Configurando o serviço:

Primeiramente é necessário instalar o pacote cado ainda não o tenha feito

install.packages("rdrop2")
devtools::install_github("karthik/rdrop2") # ou a versão de desenvolvimento

Feito isso já podemos carregar o pacote:

library(rdrop2)

Para que o dropbox libere o uso dos arquivos é necessária a autenticação, que pode ser feita através deste comando:

drop_auth()

Isso irá iniciar o seu navegador e solicitar o acesso à sua conta Dropbox, ai é só fazer o login (caso ainda não esteja logado) e em seguida podemos retornar ao R.

Podemos salvar o token para o do uso local ou remoto:

token <- drop_auth()
saveRDS(token, file = "token.rds")

Conferindo as informações da conta Dropbox

Podemos ver quais arquivos estão presentes no nosso dropbox através dos comandos:

library(dplyr)       # Para facilitar a manipulação dos dados
drop_acc() %>%       # Selecionando o diretório
  data.frame() %>%   # Convertendo para data.frame
  names()            # Solicitando informações da conta Dropbox

Obtendo listagem de diretório Dropbox

Para acessar as pastas ou arquivos em seu dropbox, podemos utilizar a função drop_dir(), veja:

#Listagem do diretório Dropbox
diretorio=drop_dir()

#Para ver os arquivos contidos no diretorio:
diretorio$name

#ou especificar um caminho
drop_dir('RPubs/dplyr')$name

#Listagem de diretório de filtro por tipo de objeto (arquivo / pasta)
drop_dir() %>% 
  filter(.tag == "folder")

Criando uma pasta no Dropbox

Podemos criar pastas no Dropbox de maneira muito conveniente sem ter de de sair do RStudio de forma tão simples como utilizar um comando drop_creat(), veja:

#Nome da pasta que será criada será "drop_test" veja:
drop_create('drop_test')

#Para acessar a posição de onde a pasta foi salva:
which(drop_dir()$name=='drop_test')

#Acessando a pasta pela posição:
drop_dir()$name[86]

#Também podemos fornecer o caminho completo onde ele precisa ser criado:
drop_create('drop_test/drop_test')

Carregando um arquivo no Dropbox

Da mesma maneira que criar pastas no Dropbox, para salvar basta utilizar o comando drop_upload(), veja:

#escrevendo um arquivo csv:
write.csv(trees, 'trees.csv')

#carregando o arquivo para a pasta raiz:
drop_upload('trees.csv')

# ou carregar para uma pasta específica
drop_upload('trees.csv', path = "drop_test/drop_test")

Isso também pode ser fazer isso para qualquer outro tipo de arquivo e arquivos grandes são suportados independentemente da sua memória.

Baixando um arquivo:

Muito simples, veja:

#Baixe um arquivo
drop_download('trees.csv')

# ou adicionar caminho se o arquivo não estiver na raiz
drop_download("drop_test/drop_test/trees.csv")

#Se desejar subescrever o arquivo ja existente:
drop_download("drop_test/drop_test/trees.csv", overwrite = T)

Deletando um arquivo

Tão fácil quando apertar DELETE.

#Delete um arquivo:
drop_delete('drop_test/drop_test/trees.csv')

Movendo um arquivo

As vezes desejamos apenar mover um arquivo, continua sendo bastante simples:

#Criando um novo diretório
drop_create("drop_test/new_folder")

#Mova um arquivo:
drop_move("drop_test/drop_test/trees.csv", "drop_test/new_folder/trees.csv")

Copiando um arquivo

#Criando um novo repositorio novamente:
drop_create("drop_test/new_folder2")

#Copiando o arquivo para lá:
drop_copy("drop_test/new_folder/trees.csv", "drop_test/new_folder2/trees.csv")

Lendo arquivos csv diretamente do Dropbox

Essa é extremamente útil para não ter que ficar baixando os arquivos toda hora

#Escrevendo um arquivo csv
write.csv(cars, file = "cars.csv")

#Enviando para o dropbox:
drop_upload("cars.csv","drop_test/new_folder/")

Agora vamos ler isso de volta em uma sessão R com o comando drop_read_csv()

# Baixando o arquivo:
new_cars <- drop_read_csv("drop_test/new_folder/cars.csv")

Observe que há um download silencioso acontecendo com seu diretório temporário.

comments powered by Disqus