# S3 Storage

O S3 Storage conecta-se ao AWS S3 e realiza as seguintes operações no armazenamento: List, Download, Upload, Delete e Move.

### **Parâmetros**

Configure o conector usando os parâmetros abaixo. Os campos que suportam expressões Double Braces estão marcados na coluna Supports DB.

| Parâmetro                        | Descrição                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Tipo        | Suporta DB | Padrão                           |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ---------- | -------------------------------- |
| **Account**                      | Conta a ser usada pelo conector. O tipo de conta deve ser Basic. É necessário fornecer o client ID e a secret key do console AWS.                                                                                                                                                                                                                                                                                                                                                             | String      | ❌          | N/A                              |
| **Operation**                    | Operação a ser realizada. Opções: **List**, **Download**, **Upload**, **Delete** ou **Move**.                                                                                                                                                                                                                                                                                                                                                                                                 | String      | ❌          | List                             |
| **Region**                       | Região AWS onde o bucket S3 está localizado.                                                                                                                                                                                                                                                                                                                                                                                                                                                  | String      | ❌          | South America (Sao Paulo)        |
| **Bucket Name**                  | Nome do bucket S3.                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | String      | ❌          | digibee-amazon-s3-connector-test |
| **Bucket Name - Move**           | Somente para a operação **Move**. Nome do bucket do qual o arquivo será movido.                                                                                                                                                                                                                                                                                                                                                                                                               | String      | ❌          | N/A                              |
| **File Name**                    | Nome do arquivo ou caminho completo (por exemplo, tmp/processed/file.txt) do arquivo local a ser usado em uma operação de Download ou Upload. Não disponível para a operação Delete.                                                                                                                                                                                                                                                                                                          | String      | ✅          | file.csv                         |
| **Remote File Name**             | Nome do arquivo ou caminho completo (por exemplo, tmp/processed/file.txt) do arquivo S3 a ser usado em uma operação de Download, Upload, List ou Delete.                                                                                                                                                                                                                                                                                                                                      | String      | ✅          | test.csv                         |
| **Remote File Name - Move**      | Somente para a operação **Move**. Novo nome do arquivo remoto após ser movido.                                                                                                                                                                                                                                                                                                                                                                                                                | String      | ✅          | N/A                              |
| **Remote Directory**             | Diretório remoto no S3 a ser usado em uma operação de Download, Upload ou Delete.                                                                                                                                                                                                                                                                                                                                                                                                             | String      | ❌          | upload/                          |
| **Remote Directory - Move**      | Somente para a operação **Move**. Nome do diretório remoto cujo arquivo será movido.                                                                                                                                                                                                                                                                                                                                                                                                          | String      | ❌          | N/A                              |
| **Page Size**                    | Somente para a operação **List**. Número de itens a retornar por página. O padrão é 1000. Para recuperar mais itens do que o tamanho da página, use o nextToken retornado na resposta com o parâmetro **Next Page Token**.                                                                                                                                                                                                                                                                    | Integer     | ❌          | 1000                             |
| **Next Page Token**              | Somente para a operação **List**. Token usado para solicitar a próxima página de resultados. A próxima página retorna o número de itens definido em **Page Size**.                                                                                                                                                                                                                                                                                                                            | String      | ❌          | N/A                              |
| **Generate Download Link**       | Quando ativado, gera um link público de download para o arquivo.                                                                                                                                                                                                                                                                                                                                                                                                                              | Boolean     | ❌          | False                            |
| **Expiration Timestamp (in ms)** | Tempo de expiração do link de download, em milissegundos. Informe o timestamp atual mais a duração desejada. Por exemplo, timestamp atual + 600000 para um link de 10 minutos. Se não for informado, o link expira 15 minutos após o timestamp atual.                                                                                                                                                                                                                                         | Number      | ❌          | N/A                              |
| **Metadata**                     | Somente para a operação **Upload**. Um objeto JSON com pares chave-valor personalizados para anexar ao objeto no S3. Quando configurado, o conector retorna os metadados na resposta do step. Ignorado quando **Metadata file** resultar em um caminho não vazio.                                                                                                                                                                                                                             | JSON Object | ✅          | N/A                              |
| **Metadata file**                | Somente para a operação **Upload**. Caminho relativo para um arquivo JSON no diretório de trabalho do pipeline (por exemplo, orders-report.csv.metadata.json). Suporta expressões Double Braces. Quando este campo resultar em um caminho não vazio, o conector lê o conteúdo do arquivo e o usa como metadados do objeto, ignorando qualquer valor definido em **Metadata**. Se o campo estiver ausente, em branco ou resultar em um valor vazio, o conector usa **Metadata** como fallback. | String      | ✅          | N/A                              |
| **Include user metadata**        | Somente para a operação **Upload**. Quando ativado, o conector anexa os metadados configurados em **Metadata** ou **Metadata file** ao objeto no S3. Quando desativado, o objeto é enviado sem metadados de usuário, mesmo que **Metadata** ou **Metadata file** estejam configurados.                                                                                                                                                                                                        | Boolean     | ❌          | False                            |
| **Fail on error**                | Quando ativado, o pipeline para se ocorrer um erro. Quando desativado, o pipeline continua e o output exibe "success": false.                                                                                                                                                                                                                                                                                                                                                                 | Boolean     | ❌          | False                            |
| **Custom Endpoint**              | Quando ativado, permite o uso de uma URL de endpoint personalizada para o S3.                                                                                                                                                                                                                                                                                                                                                                                                                 | Boolean     | ❌          | False                            |
| **Endpoint URL**                 | A URL do endpoint personalizado. Disponível apenas quando **Custom Endpoint** está ativado.                                                                                                                                                                                                                                                                                                                                                                                                   | String      | ✅          | N/A                              |
| **Path-style access**            | Quando ativado, o conector usa o formato de URL path-style para acessar o S3. Útil ao conectar-se a armazenamentos compatíveis com S3 que requerem acesso path-style, como um endpoint personalizado.                                                                                                                                                                                                                                                                                         | Boolean     | ❌          | False                            |

{% hint style="info" %}
A manipulação de arquivos dentro de um pipeline é realizada em uma área protegida. Todos os arquivos são acessíveis somente por meio de um diretório temporário, e cada pipeline key fornece acesso ao seu próprio conjunto de arquivos.
{% endhint %}

### **Fluxo de mensagens**

#### **Input**

O conector requer uma mensagem de input apenas se um campo estiver configurado com uma expressão Double Braces. Caso contrário, nenhum input específico é esperado: basta configurar os campos para a operação selecionada.

#### **Output**

O conector retorna um objeto JSON com o resultado da operação. Os campos retornados variam de acordo com a operação.

**List**

```json
{
  "success": true,
  "content": [
    {
      "bucketName": "digibee-amazon-s3-connector-test",
      "key": "list/test.csv",
      "size": 9,
      "lastModified": 1596139663000,
      "storageClass": "STANDARD",
      "owner": null,
      "etag": "59587d0fd956dee6905d423bfda2acaf"
    }
  ],
  "count": 1,
  "nextToken": "1kWwy…..."
}
```

Campos do output:

* success: true se a operação foi bem-sucedida; false se falhou.
* content: array com informações do arquivo.
* bucketName: nome do bucket.
* key: caminho do diretório e nome do arquivo.
* size: tamanho do arquivo.
* lastModified: data da última modificação do arquivo.
* storageClass: classe de armazenamento configurada no S3.
* owner: proprietário do arquivo.
* etag: entity tag — um hash gerado pelo S3 para o arquivo.
* count: número de objetos retornados.
* nextToken: token para paginação dos itens restantes. Retornado apenas quando há mais objetos a listar.

**Download**

```json
{
  "success": true,
  "fileName": "test.file",
  "remoteDirectory": "pagination_folder/",
  "remoteFileName": "c4b88b6b-83bb-42b0-9de6-0371389db585.csv",
  "bucketName": "digibee-amazon-s3-connector-test"
}
```

Campos do output:

* success: true se a operação foi bem-sucedida; false se falhou.
* fileName: nome do arquivo baixado para o diretório do pipeline.
* remoteDirectory: nome do diretório remoto no S3.
* remoteFileName: nome do arquivo remoto no S3.
* bucketName: nome do bucket S3.

**Upload**

```json
{
  "success": true,
  "fileName": "test.file",
  "remoteDirectory": "pagination_folder/",
  "remoteFileName": "test.file",
  "urlGenerated": "https://digibee-amazon-s3-connector-test.s3.sa-east-1.amazonaws.com/pagination_folder/test.file?....",
  "bucketName": "digibee-amazon-s3-connector-test"
}
```

Quando **Metadata** ou **Metadata file** estiver configurado e **Include user metadata** estiver ativado, a resposta também inclui os metadados anexados ao objeto:

```json
{
  "success": true,
  "fileName": "test.file",
  "remoteDirectory": "pagination_folder/",
  "remoteFileName": "test.file",
  "urlGenerated": "https://digibee-amazon-s3-connector-test.s3.sa-east-1.amazonaws.com/pagination_folder/test.file?....",
  "bucketName": "digibee-amazon-s3-connector-test",
  "metadata": {
    "source": "orders-pipeline",
    "environment": "production"
  }
}
```

Campos do output:

* success: true se a operação foi bem-sucedida; false se falhou.
* fileName: nome do arquivo local enviado a partir do diretório do pipeline.
* remoteDirectory: nome do diretório remoto no S3.
* remoteFileName: nome do arquivo remoto no S3.
* bucketName: nome do bucket S3.
* urlGenerated: link público de download para o arquivo. Retornado apenas quando **Generate Download Link** está ativado.
* metadata: pares chave-valor anexados ao objeto como metadados de usuário. Retornado apenas quando metadados são aplicados.

**Move**

```json
{
  "success": true,
  "remoteDirectory": "pagination_folder/",
  "remoteFileName": "c4b88b6b-83bb-42b0-9de6-0371389db585.csv",
  "remoteFileNameMove": "abc.file",
  "remoteDirectoryMove": "list/",
  "bucketName": "digibee-amazon-s3-connector-test",
  "bucketNameMove": "digibee-amazon-s3-connector-test"
}
```

Campos do output:

* success: true se a operação foi bem-sucedida; false se falhou.
* remoteDirectory: nome do diretório remoto original no S3.
* remoteFileName: nome do arquivo remoto original no S3.
* bucketName: nome do bucket S3 original.
* bucketNameMove: nome do bucket de destino.
* remoteDirectoryMove: nome do diretório remoto de destino.
* remoteFileNameMove: novo nome do arquivo após ser movido.

**Delete**

```json
{
  "success": true,
  "remoteDirectory": "list/",
  "remoteFileName": "abc.file",
  "bucketName": "digibee-amazon-s3-connector-test"
}
```

Campos do output:

* success: true se a operação foi bem-sucedida; false se falhou.
* remoteDirectory: nome do diretório remoto no S3.
* remoteFileName: nome do arquivo remoto excluído do S3.
* bucketName: nome do bucket S3.

**Erro**

```json
{
  "success": false,
  "message": "Could no issue the operation: download in the AWS S3 Storage",
  "error": "com.amazonaws.services.s3.model.AmazonS3Exception: The specified key does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey; ...)"
}
```

Campos do output:

* success: false quando a operação falha.
* message: descrição do erro proveniente do conector.
* error: mensagem de erro retornada pelo servidor S3.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/aws/s3-storage.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
