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

# Configurer un bucket AWS S3 personnalisé

Par défaut, Novita AI stocke temporairement les résultats de sortie dans notre bucket S3 privé et renvoie les résultats à l’utilisateur via un lien S3 temporaire autorisé.

Cependant, vous pouvez configurer un **bucket S3 personnalisé** afin de nous permettre d’enregistrer les résultats dans votre propre bucket. Veuillez suivre les étapes ci-dessous pour l’activer.

## 1. Configurer la politique du bucket S3

Tout d’abord, modifiez la configuration de votre politique de bucket S3 au format suivant (remplacez `${BucketName}` par le nom de votre bucket) :

```json theme={"system"}
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "CanonicalUser": "e98cde8d11ec7c03ac08688f1a933b08b0f0f7746b21c4f2e7b2c8202cc0532f"
      },
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Resource": "arn:aws:s3:::${BucketName}/*"
    }
  ]
}
```

## 2. Activer le stockage personnalisé dans les API V3

Pour les endpoints d’API V3, Novita AI fournit le paramètre `custom_storage` dans le corps de la requête, ce qui vous permet de configurer votre bucket S3 personnalisé pour stocker les images générées.

Voici un exemple utilisant l’endpoint d’API `txt2img` :

```bash theme={"system"}
curl --location 'https://api.novita.ai/v3/async/txt2img' \
--header 'Authorization: Bearer {{API Key}}' \
--header 'Content-Type: application/json' \
--data '{
  "extra": {
    "response_image_type": "jpeg",
    "custom_storage": {
      "aws_s3": {
        "region": "us-east-2",
        "bucket": "test_bucket",
        "path": "/"
      }
    }
  },
  "request": {
    "prompt": "a cute dog",
    "model_name": "realisticVisionV51_v51VAE_94301.safetensors",
    "negative_prompt": "",
    "width": 512,
    "height": 384,
    "image_num": 2,
    "steps": 20,
    "seed": 123,
    "clip_skip": 1,
    "sampler_name": "Euler a",
    "guidance_scale": 7.5
  }
}'
```
