> ## 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 pour App Storage

> Découvrez comment utiliser le SDK JavaScript officiel pour gérer des fichiers dans Replit App Storage.

Ce guide de référence explique la classe `Client` de la bibliothèque `object-storage` et fournit des exemples de code pour ses méthodes.

## Client

La classe `Client` gère les interactions avec Replit App Storage. Cette classe propose des méthodes pour effectuer des opérations sur des fichiers dans un bucket.

Pour importer la classe depuis la bibliothèque, ajoutez la ligne suivante à votre code JavaScript :

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

Utilisez le code suivant pour créer une instance de `Client` qui interagit avec Replit Object Storage :

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

## Constructeurs

**constructor**

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

Crée une nouvelle instance de Client pour interagir avec Replit App Storage.

**Paramètres**

| Nom        | Type            | Description                                         |
| :--------- | :-------------- | :-------------------------------------------------- |
| `options?` | `ClientOptions` | Options de configuration pour paramétrer le client. |

**Retourne**

`Client`

## Méthodes

### copy

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

Copie un objet dans le même bucket.
Cette méthode écrase tout objet existant au chemin de destination.

**Paramètres**

| Nom              | Type     | Description                                   |
| :--------------- | :------- | :-------------------------------------------- |
| `objectName`     | `string` | Le chemin complet de l'objet à copier.        |
| `destObjectName` | `string` | Le chemin complet vers lequel copier l'objet. |

**Retourne**

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

***

### delete

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

Supprime un objet du bucket.

**Paramètres**

| Nom          | Type            | Description                                     |
| :----------- | :-------------- | :---------------------------------------------- |
| `objectName` | `string`        | Le chemin complet de l'objet à supprimer.       |
| `options?`   | `DeleteOptions` | Configurations pour l'opération de suppression. |

**Retourne**

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

***

### downloadAsBytes

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

Télécharge un objet et retourne son contenu brut sous forme de buffer.

**Paramètres**

| Nom          | Type              | Description                                        |
| :----------- | :---------------- | :------------------------------------------------- |
| `objectName` | `string`          | Le chemin complet de l'objet à télécharger.        |
| `options?`   | `DownloadOptions` | Configurations pour l'opération de téléchargement. |

**Retourne**

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

***

### downloadAsStream

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

Crée un flux lisible du contenu de l'objet.
Le flux émet toutes les erreurs rencontrées pendant le téléchargement.

**Paramètres**

| Nom          | Type              | Description                                        |
| :----------- | :---------------- | :------------------------------------------------- |
| `objectName` | `string`          | Le chemin complet de l'objet à télécharger.        |
| `options?`   | `DownloadOptions` | Configurations pour l'opération de téléchargement. |

**Retourne**

`Readable`

### downloadAsText

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

Télécharge un objet et retourne son contenu sous forme de chaîne de caractères.

**Paramètres**

| Nom          | Type              | Description                                        |
| :----------- | :---------------- | :------------------------------------------------- |
| `objectName` | `string`          | Le chemin complet de l'objet à télécharger.        |
| `options?`   | `DownloadOptions` | Configurations pour l'opération de téléchargement. |

**Retourne**

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

### downloadToFilename

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

Télécharge un objet et l'enregistre à l'emplacement spécifié sur le système de fichiers local.

**Paramètres**

| Nom            | Type              | Description                                                              |
| :------------- | :---------------- | :----------------------------------------------------------------------- |
| `objectName`   | `string`          | Le chemin complet de l'objet à télécharger.                              |
| `destFilename` | `string`          | Le chemin sur le système de fichiers local où écrire l'objet téléchargé. |
| `options?`     | `DownloadOptions` | Configurations pour l'opération de téléchargement.                       |

**Retourne**

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

### exists

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

Vérifie si un objet existe dans le bucket.

**Paramètres**

| Nom          | Type     | Description                              |
| :----------- | :------- | :--------------------------------------- |
| `objectName` | `string` | Le chemin complet de l'objet à vérifier. |

**Retourne**

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

### getBucket

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

**Retourne**

`Promise`\<`Bucket`>

### init

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

**Paramètres**

| Nom         | Type     |
| :---------- | :------- |
| `bucketId?` | `string` |

**Retourne**

`Promise`\<`Bucket`>

### list

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

Retourne une liste de tous les objets dans le bucket.

**Paramètres**

| Nom        | Type          | Description                                 |
| :--------- | :------------ | :------------------------------------------ |
| `options?` | `ListOptions` | Configurations pour l'opération de listage. |

**Retourne**

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

### mapUploadOptions

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

**Paramètres**

| Nom        | Type            |
| :--------- | :-------------- |
| `options?` | `UploadOptions` |

**Retourne**

`undefined` | `UploadOptions`

### uploadFromBytes

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

Envoie un objet en utilisant sa représentation en octets en mémoire.
Cette méthode écrase tout objet existant portant le même nom.

**Paramètres**

| Nom          | Type            | Description                                     |
| :----------- | :-------------- | :---------------------------------------------- |
| `objectName` | `string`        | Le chemin de destination complet de l'objet.    |
| `contents`   | `Buffer`        | Le contenu brut de l'objet sous forme d'octets. |
| `options?`   | `UploadOptions` | Configurations pour l'opération d'envoi.        |

**Retourne**

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

### uploadFromFilename

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

Envoie un fichier depuis le système de fichiers local vers le bucket.
Cette méthode écrase tout objet existant portant le même nom.

**Paramètres**

| Nom           | Type            | Description                                                      |
| :------------ | :-------------- | :--------------------------------------------------------------- |
| `objectName`  | `string`        | Le chemin de destination complet de l'objet.                     |
| `srcFilename` | `string`        | Le chemin du fichier sur le système de fichiers local à envoyer. |
| `options?`    | `UploadOptions` | Configurations pour l'opération d'envoi.                         |

**Retourne**

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

### uploadFromStream

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

Envoie un objet en lisant son contenu depuis le flux fourni.
Le flux émet toutes les erreurs rencontrées pendant l'envoi. Cette méthode écrase tout objet existant portant le même nom.

**Paramètres**

| Nom          | Type            | Description                                               |
| :----------- | :-------------- | :-------------------------------------------------------- |
| `objectName` | `string`        | Le chemin de destination complet de l'objet.              |
| `stream`     | `Readable`      | Un flux lisible depuis lequel lire le contenu de l'objet. |
| `options?`   | `UploadOptions` | Configurations pour l'opération d'envoi.                  |

**Retourne**

`Promise`\<`void`>

### uploadFromText

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

Envoie un objet en utilisant sa représentation textuelle en mémoire.
Cette méthode écrase tout objet existant portant le même nom.

**Paramètres**

| Nom          | Type            | Description                                  |
| :----------- | :-------------- | :------------------------------------------- |
| `objectName` | `string`        | Le chemin de destination complet de l'objet. |
| `contents`   | `string`        | Le contenu de l'objet sous forme de texte.   |
| `options?`   | `UploadOptions` | Configurations pour l'opération d'envoi.     |

**Retourne**

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

## Exemples de méthodes

Les sections suivantes fournissent des exemples de code pour gérer vos fichiers à l'aide du SDK Replit Object Storage.

### Récupérer un objet sous forme de texte

```javascript theme={null}
const { ok, value: textValue, error } = await client.downloadAsText('file.json');
if (!ok) {
    // ... gérer l'erreur ...
}
```

### Récupérer un objet sous forme d'octets bruts

```javascript theme={null}
const { ok, value: bytesValue, error } = await client.downloadAsBytes('file.png');
if (!ok) {
    // ... gérer l'erreur ...
}
```

### Récupérer un objet depuis un flux

```javascript theme={null}
const { ok, value: stream, error } = await client.downloadAsStream('file.json');
if (!ok) {
    // ... gérer l'erreur ...
}
```

### Télécharger un objet vers le système de fichiers

```javascript theme={null}
const { ok, error } = await client.downloadToFilename('file.json', destFilename);
if (!ok) {
    // ... gérer l'erreur ...
}
```

### Lister les objets dans le bucket

```javascript theme={null}
const { ok, value, error } = await client.list();
if (!ok) {
    // ... gérer l'erreur ...
}
```

### Envoyer un objet à partir de texte

```javascript theme={null}
const { ok, error } = await client.uploadFromText('file.json', data);
if (!ok) {
    // ... gérer l'erreur ...
}
```

### Envoyer un objet sous forme d'octets

```javascript theme={null}
const { ok, error } = await client.uploadFromBytes('file.png', data);
if (!ok) {
    // ... gérer l'erreur ...
}
```

### Envoyer un objet depuis le système de fichiers

```javascript theme={null}
const { ok, error } = await client.uploadFromFilename('file.json', srcFilename);
if (!ok) {
    // ... gérer l'erreur ...
}
```

### Envoyer un objet depuis un flux

```javascript theme={null}
const { ok, error } = await client.uploadFromStream('file.json', stream);
if (!ok) {
    // ... gérer l'erreur ...
}
```

### Supprimer un objet du bucket

```javascript theme={null}
const { ok, error } = await client.delete('file.json');
if (!ok) {
    // ... gérer l'erreur ...
}
```
