Skip to main content

Carol App Storage

O que é a aba de Storage?

A aba Storage no Carol App é uma funcionalidade da interface da plataforma Carol que exibe os arquivos gerados durante a execução de processos de um App. Esses arquivos podem ser, por exemplo, logs, relatórios CSV, arquivos JSON ou qualquer outro tipo de dado que o script deseje expor ao usuário ao final do processamento.

Ela só aparece quando o app gera arquivos em um caminho específico monitorado pela plataforma.


Quando a aba "Storage" aparece?

A aba Storage aparece automaticamente no Carol App somente se arquivos forem salvos durante a execução de processos no diretório de storage padrão da plataforma.

Esse diretório é monitorado pela plataforma Carol e está disponível dentro do container em:

/tmp/storage/

Qualquer arquivo escrito nesse caminho durante a execução do processo será capturado e disponibilizado na interface.


Como salvar um arquivo para que ele apareça no Storage

O método mais recomendado e seguro de salvar arquivos é utilizando a biblioteca PyCarol, que já abstrai e cuida das permissões e do caminho correto.

Exemplo básico com PyCarol:

from pycarol import Carol, Storage

# Instancia a autenticação com o Carol
carol = Carol()

# Instancia o objeto Storage, que mapeia automaticamente o diretório monitorado
storage = Storage(carol)

# Salva um arquivo que está no container (por exemplo: '/app/data/meu_arquivo.csv')
storage.save(
name='meu_arquivo.csv', # Nome final do arquivo (evite espaços!)
obj_path='/app/data/meu_arquivo.csv', # Caminho interno dentro do container
content_type='text/csv' # Tipo de conteúdo (opcional, mas recomendado)
)

Ao final do processo, esse arquivo será exibido automaticamente na aba Storage do app.


Como o Carol App executa isso por trás?

  1. Quando um Carol App é executado (via botão Run, scheduler ou trigger), a plataforma sobe um container temporário com o ambiente definido no manifesto do app.
  2. O script que está definido no manifest.json (ou chamado por outro script principal) será executado.
  3. Durante a execução, se esse script salvar arquivos no caminho /tmp/storage/, eles serão mapeados pela engine da Carol e, ao término do processo, exibidos na interface web.
  4. Esses arquivos ficam disponíveis na aba Storage para download, visualização ou remoção.

Outras funcionalidades da classe Storage

Além do .save(), a classe Storage fornece diversos métodos úteis:

MétodoDescrição
save()Salva um arquivo para o storage monitorado
delete(name)Remove um arquivo existente pelo nome
list()Lista todos os arquivos atualmente salvos
exists(name)Verifica se um arquivo já existe

Para mais detalhes, consulte a documentação oficial do PyCarol.


Observações importantes

  • Se estiver desenvolvendo localmente, certifique-se de que seu ambiente .env tem as variáveis corretamente configuradas (CAROLTENANT, CAROLAPPNAME, etc.).
  • Os arquivos criados permanecem temporariamente acessíveis e não devem ser usados como armazenamento permanente.
  • A aba Storage só aparece se ao menos um arquivo for salvo com sucesso durante a execução.
Cuidado

Ao desenvolver um Carol App que gera um arquivo ao final do processo, é importante evitar adicionar espaços em branco ao nomear o arquivo, pois a URL é codificada traduzindo o caracter branco para %20, fazendo com que se refira a um arquivo que não existe. Portanto, recomenda-se utilizar um caracter válido em substituição ao espaço em branco, como um traço alto - ou baixo _.

Carol App Storage