Armazenamento e Transferência de Arquivos

Azure Storage Blob Service

  • Descrição: o componente Azure Storage Blob Service é usado para armazenar e recuperar blobs (objeto binário grande) do serviço Azure Storage Blob usando APIs do Azure v12.

  • Exemplo

    • O fluxo começa com uma requisição POST para o endpoint /hello.

    • O componente azure-storage-blob é utilizado para conectar-se ao contêiner myblobcontainer na conta camelstorageaccount01.

    • Parâmetros:

      • credentialType: "SHARED_ACCOUNT_KEY": especifica que a autenticação será feita usando a chave de conta compartilhada.

      • operation: "listBlobs": define que a operação realizada será listar os blobs presentes no contêiner.

      • accessKey: "{{AWS_ACCESS_KEY}}": define a chave de acesso para autenticação, referenciada em uma variável.

    • Após listar os blobs, o fluxo registra informações no log com o identificador myLogger.

Script

Diagrama

- from:
    uri: "rest:post:/hello"
    steps:
    - to:
        uri: "azure-storage-blob://camelstorageaccount01/myblobcontainer"
        parameters:
          credentialType: "SHARED_ACCOUNT_KEY"
          operation: "listBlobs"
          accessKey: "{{AWS_ACCESS_KEY}}"
    - to:
        uri: "log:myLogger"
component azure storage blob service

AWS S3 Storage Service

  • Descrição: o componente AWS S3 Storage Service permite que você interaja com o serviço Amazon S3 (Simple Storage Service) da AWS e manipule dados em buckets S3 diretamente através das rotas de integração.

  • Exemplo

    • O fluxo começa com uma requisição GET ao endpoint /file/retrieve.

    • O conector recupera um arquivo do bucket S3:

      • uri: define o bucket (nome ou ARN).

      • Os parâmetros incluem:

        • fileName: define o caminho do arquivo no bucket (por exemplo, path/to/myfile.txt).

        • accessKey e secretKey: são credenciais de autenticação para acessar o bucket, referenciadas como variáveis de ambiente.

    • Após o arquivo ser recuperado com sucesso, o conteúdo do arquivo é registrado no log.

Script

Diagrama

- from:
    uri: "rest:get:/file/retrieve"
    steps:
      - to:
          uri: "aws2-s3:bucketNameOrArn"
          parameters:
            fileName: "path/to/myfile.txt"
            accessKey: "{{ACCESS_KEY}}"
            secretKey: "{{SECRET_KEY}}"
      - log:
          message: "File retrieved successfully: ${body}"
component aws3 connector

FTP/FTPS

  • Descrição: o componente FTP fornece acesso a sistemas de arquivos remotos através dos protocolos FTP e SFTP. Funcionamento apenas no modo passivo.

O FTPS é uma versão segura do FTP, que adiciona suporte para SSL/TLS para criptografar a conexão.
  • Exemplo

    • O fluxo começa com o download de um arquivo de um servidor FTP. O servidor é especificado pela variável ftp_host.

    • Transforma o conteúdo do arquivo substituindo caracteres acentuados 'ã', 'â', 'á', 'à' e 'ä' por 'a'.

    • Depois faz o upload do arquivo modificado para o mesmo ou outro diretório no servidor FTP.

Script

Diagrama

- from:
    id: ftp-input
    uri: "ftp:{{ftp_host}}/download"
    parameters:
      fileName: "{{ftp_filename_extension_input}}"
      password: "{{ftp_password}}"
      username: "{{ftp_username}}"
      delay: 10000
      passiveMode: true
    steps:
      - transform:
          simple: ${bodyAs(String).replaceAll('[ãâáàä]', 'a')}
      - to:
          id: ftp-output
          uri: "ftp:{{ftp_host}}/upload"
          parameters:
            fileName: "{{ftp_filename_extension_output}}"
            password: "{{ftp_password}}"
            username: "{{ftp_username}}"
            passiveMode: true
component ftp connector

SFTP

  • Descrição: o componente SFTP fornece acesso a sistemas de arquivos remotos através dos protocolos FTP e SFTP. Funcionamento apenas no modo passivo.

  • Exemplo

    • O fluxo do exemplo é configurado para ser acionado por um agendador Quartz, que dispara a cada minuto.

    • Quando o gatilho é ativado, o corpo da mensagem é definido como Hello World.

    • O fluxo então envia essa mensagem como um arquivo chamado helloworld.txt para um servidor SFTP no endereço demo.wftpserver.com, na porta 2222, no diretório /upload.

Script

Diagrama

- from:
    uri: "quartz://ipaas/trigger"
    parameters:
      cron: "* * * * *"
    steps:
    - setBody:
        constant: "Hello World"
    - to:
        uri: "sftp://demo.wftpserver.com:2222/upload"
        parameters:
          username: "demo"
          password: "demo"
          fileName: "helloworld.txt"
          passiveMode: true
component sftp
Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]