> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK JavaScript do App Storage

> Aprenda a usar o SDK JavaScript oficial para gerenciar arquivos no Replit App Storage.

Este guia de referência explica a classe `Client` da biblioteca `object-storage` e fornece exemplos de código para seus métodos.

## Client

A classe `Client` gerencia as interações com o Replit App Storage. Esta classe possui métodos para realizar operações em arquivos em um bucket.

Para importar a classe da biblioteca, adicione a seguinte linha ao seu código JavaScript:

```javascript theme={null}
import { Client } from "@replit/object-storage";
```

Use o seguinte código para criar uma instância de `Client` que interage com o Replit Object Storage:

```javascript theme={null}
const client = new Client();
```

## Construtores

**constructor**

* **new Client**(`options?`): `Client`

Cria uma nova instância de Client para interagir com o Replit App Storage.

**Parâmetros**

| Nome       | Tipo            | Descrição                                          |
| :--------- | :-------------- | :------------------------------------------------- |
| `options?` | `ClientOptions` | Opções de configuração para inicializar o cliente. |

**Retorna**

`Client`

## Métodos

### copy

* **copy**(`objectName`, `destObjectName`): `Promise`\<`Result`\<`null`, `RequestError`>>

Copia um objeto dentro do mesmo bucket.
Este método sobrescreve qualquer objeto existente no caminho de destino.

**Parâmetros**

| Nome             | Tipo     | Descrição                                           |
| :--------------- | :------- | :-------------------------------------------------- |
| `objectName`     | `string` | O caminho completo do objeto a ser copiado.         |
| `destObjectName` | `string` | O caminho completo para onde o objeto será copiado. |

**Retorna**

`Promise`\<`Result`\<`null`, `RequestError`>>

***

### delete

* **delete**(`objectName`, `options?`): `Promise`\<`Result`\<`null`, `RequestError`>>

Exclui um objeto do bucket.

**Parâmetros**

| Nome         | Tipo            | Descrição                                    |
| :----------- | :-------------- | :------------------------------------------- |
| `objectName` | `string`        | O caminho completo do objeto a ser excluído. |
| `options?`   | `DeleteOptions` | Configurações para a operação de exclusão.   |

**Retorna**

`Promise`\<`Result`\<`null`, `RequestError`>>

***

### downloadAsBytes

* **downloadAsBytes**(`objectName`, `options?`): `Promise`\<`Result`\<`Buffer`, `RequestError`>>

Faz o download de um objeto e retorna seu conteúdo bruto como um buffer.

**Parâmetros**

| Nome         | Tipo              | Descrição                                   |
| :----------- | :---------------- | :------------------------------------------ |
| `objectName` | `string`          | O caminho completo do objeto a ser baixado. |
| `options?`   | `DownloadOptions` | Configurações para a operação de download.  |

**Retorna**

`Promise`\<`Result`\<`Buffer`, `RequestError`>>

***

### downloadAsStream

* **downloadAsStream**(`objectName`, `options?`): `Readable`

Cria um stream legível do conteúdo do objeto.
O stream emite quaisquer erros encontrados durante o download.

**Parâmetros**

| Nome         | Tipo              | Descrição                                   |
| :----------- | :---------------- | :------------------------------------------ |
| `objectName` | `string`          | O caminho completo do objeto a ser baixado. |
| `options?`   | `DownloadOptions` | Configurações para a operação de download.  |

**Retorna**

`Readable`

### downloadAsText

* **downloadAsText**(`objectName`, `options?`): `Promise`\<`Result`\<`string`, `RequestError`>>

Faz o download de um objeto e retorna seu conteúdo como uma string.

**Parâmetros**

| Nome         | Tipo              | Descrição                                   |
| :----------- | :---------------- | :------------------------------------------ |
| `objectName` | `string`          | O caminho completo do objeto a ser baixado. |
| `options?`   | `DownloadOptions` | Configurações para a operação de download.  |

**Retorna**

`Promise`\<`Result`\<`string`, `RequestError`>>

### downloadToFilename

* **downloadToFilename**(`objectName`, `destFilename`, `options?`): `Promise`\<`Result`\<`null`, `RequestError`>>

Faz o download de um objeto e o salva no local especificado no sistema de arquivos local.

**Parâmetros**

| Nome           | Tipo              | Descrição                                                                  |
| :------------- | :---------------- | :------------------------------------------------------------------------- |
| `objectName`   | `string`          | O caminho completo do objeto a ser baixado.                                |
| `destFilename` | `string`          | O caminho no sistema de arquivos local onde o objeto baixado será gravado. |
| `options?`     | `DownloadOptions` | Configurações para a operação de download.                                 |

**Retorna**

`Promise`\<`Result`\<`null`, `RequestError`>>

### exists

* **exists**(`objectName`): `Promise`\<`Result`\<`boolean`, `RequestError`>>

Verifica se um objeto existe no bucket.

**Parâmetros**

| Nome         | Tipo     | Descrição                                      |
| :----------- | :------- | :--------------------------------------------- |
| `objectName` | `string` | O caminho completo do objeto a ser verificado. |

**Retorna**

`Promise`\<`Result`\<`boolean`, `RequestError`>>

### getBucket

* **getBucket**(): `Promise`\<`Bucket`>

**Retorna**

`Promise`\<`Bucket`>

### init

* **init**(`bucketId?`): `Promise`\<`Bucket`>

**Parâmetros**

| Nome        | Tipo     |
| :---------- | :------- |
| `bucketId?` | `string` |

**Retorna**

`Promise`\<`Bucket`>

### list

* **list**(`options?`): `Promise`\<`Result`\<`StorageObject`\[], `RequestError`>>

Retorna uma lista de todos os objetos no bucket.

**Parâmetros**

| Nome       | Tipo          | Descrição                                  |
| :--------- | :------------ | :----------------------------------------- |
| `options?` | `ListOptions` | Configurações para a operação de listagem. |

**Retorna**

`Promise`\<`Result`\<`StorageObject`\[], `RequestError`>>

### mapUploadOptions

* **mapUploadOptions**(`options?`): `undefined` | `UploadOptions`

**Parâmetros**

| Nome       | Tipo            |
| :--------- | :-------------- |
| `options?` | `UploadOptions` |

**Retorna**

`undefined` | `UploadOptions`

### uploadFromBytes

* **uploadFromBytes**(`objectName`, `contents`, `options?`): `Promise`\<`Result`\<`null`, `RequestError`>>

Faz o upload de um objeto usando sua representação em bytes na memória.
Este método sobrescreve qualquer objeto existente com o mesmo nome.

**Parâmetros**

| Nome         | Tipo            | Descrição                                     |
| :----------- | :-------------- | :-------------------------------------------- |
| `objectName` | `string`        | O caminho de destino completo do objeto.      |
| `contents`   | `Buffer`        | O conteúdo bruto do objeto em forma de bytes. |
| `options?`   | `UploadOptions` | Configurações para a operação de upload.      |

**Retorna**

`Promise`\<`Result`\<`null`, `RequestError`>>

### uploadFromFilename

* **uploadFromFilename**(`objectName`, `srcFilename`, `options?`): `Promise`\<`Result`\<`null`, `RequestError`>>

Faz o upload de um arquivo do sistema de arquivos local para o bucket.
Este método sobrescreve qualquer objeto existente com o mesmo nome.

**Parâmetros**

| Nome          | Tipo            | Descrição                                                        |
| :------------ | :-------------- | :--------------------------------------------------------------- |
| `objectName`  | `string`        | O caminho de destino completo do objeto.                         |
| `srcFilename` | `string`        | O caminho do arquivo no sistema de arquivos local a ser enviado. |
| `options?`    | `UploadOptions` | Configurações para a operação de upload.                         |

**Retorna**

`Promise`\<`Result`\<`null`, `RequestError`>>

### uploadFromStream

* **uploadFromStream**(`objectName`, `stream`, `options?`): `Promise`\<`void`>

Faz o upload de um objeto lendo seu conteúdo a partir do stream fornecido.
O stream emite quaisquer erros encontrados durante o upload. Este método sobrescreve qualquer objeto existente com o mesmo nome.

**Parâmetros**

| Nome         | Tipo            | Descrição                                                          |
| :----------- | :-------------- | :----------------------------------------------------------------- |
| `objectName` | `string`        | O caminho de destino completo do objeto.                           |
| `stream`     | `Readable`      | Um stream legível a partir do qual o conteúdo do objeto será lido. |
| `options?`   | `UploadOptions` | Configurações para a operação de upload.                           |

**Retorna**

`Promise`\<`void`>

### uploadFromText

* **uploadFromText**(`objectName`, `contents`, `options?`): `Promise`\<`Result`\<`null`, `RequestError`>>

Faz o upload de um objeto usando sua representação em texto na memória.
Este método sobrescreve qualquer objeto existente com o mesmo nome.

**Parâmetros**

| Nome         | Tipo            | Descrição                                |
| :----------- | :-------------- | :--------------------------------------- |
| `objectName` | `string`        | O caminho de destino completo do objeto. |
| `contents`   | `string`        | O conteúdo do objeto em forma de texto.  |
| `options?`   | `UploadOptions` | Configurações para a operação de upload. |

**Retorna**

`Promise`\<`Result`\<`null`, `RequestError`>>

## Exemplos de métodos

As seções a seguir fornecem exemplos de código para gerenciar seus arquivos usando o SDK do Replit Object Storage.

### Recuperar um objeto como texto

```javascript theme={null}
const { ok, value: textValue, error } = await client.downloadAsText('file.json');
if (!ok) {
    // ... tratar erro ...
}
```

### Recuperar um objeto como representação bruta em bytes

```javascript theme={null}
const { ok, value: bytesValue, error } = await client.downloadAsBytes('file.png');
if (!ok) {
    // ... tratar erro ...
}
```

### Recuperar um objeto a partir de um stream

```javascript theme={null}
const { ok, value: stream, error } = await client.downloadAsStream('file.json');
if (!ok) {
    // ... tratar erro ...
}
```

### Baixar um objeto para o sistema de arquivos

```javascript theme={null}
const { ok, error } = await client.downloadToFilename('file.json', destFilename);
if (!ok) {
    // ... tratar erro ...
}
```

### Listar objetos no bucket

```javascript theme={null}
const { ok, value, error } = await client.list();
if (!ok) {
    // ... tratar erro ...
}
```

### Fazer upload de um objeto a partir de texto

```javascript theme={null}
const { ok, error } = await client.uploadFromText('file.json', data);
if (!ok) {
    // ... tratar erro ...
}
```

### Fazer upload de um objeto como bytes

```javascript theme={null}
const { ok, error } = await client.uploadFromBytes('file.png', data);
if (!ok) {
    // ... tratar erro ...
}
```

### Fazer upload de um objeto a partir do sistema de arquivos

```javascript theme={null}
const { ok, error } = await client.uploadFromFilename('file.json', srcFilename);
if (!ok) {
    // ... tratar erro ...
}
```

### Fazer upload de um objeto a partir de um stream

```javascript theme={null}
const { ok, error } = await client.uploadFromStream('file.json', stream);
if (!ok) {
    // ... tratar erro ...
}
```

### Excluir um objeto do bucket

```javascript theme={null}
const { ok, error } = await client.delete('file.json');
if (!ok) {
    // ... tratar erro ...
}
```
