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

# Integrazione con la CDN

> Come usare i file del team su un sito, in Next.js o in CI/CD.

La CDN conserva i file del team e li serve a indirizzi pubblici. Si gestisce con l'API V3 e una chiave; per servire i file non serve chiave.

| Attività | Come fare |
| - | - |
| Immagini, documenti, video | Caricali con `POST /v3/cdn/assets` e usa l'indirizzo pubblico |
| File da un URL | `POST /v3/cdn/assets/external` lo scarica nella CDN |
| HTML/CSS semplice | Indirizzi completi della CDN in `src`, `href` e `url()` |
| Next.js | [Guida per Next.js](https://apidocs.erlcrussia.com/it/tutorials/nextjs-cdn-integration.md) |
| Dominio personalizzato | [Domini CDN personalizzati](https://apidocs.erlcrussia.com/it/tutorials/cdn-custom-domains.md) |
| Rilasci da CI/CD | [CI/CD e svuotamento della cache](https://apidocs.erlcrussia.com/it/tutorials/cdn-cache-purge-cicd.md) |

## Accesso

Per prima cosa collega la chiave a un team:

```bash theme={null}
curl -X PUT https://api.erlcrussia.com/v3/cdn/team \
  -H 'erlcrussia-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"teamId":"YOUR_TEAM_ID"}'
```

Il titolare della chiave deve avere un ruolo nel team con accesso alla CDN; l'appartenenza è verificata a ogni richiesta. Invia la chiave solo nell'header `erlcrussia-api-key`.

## Indirizzi dei file

Ogni file è identificato da uno spazio e da un percorso. Lo spazio è lo slug del team o un [dominio personalizzato](https://apidocs.erlcrussia.com/it/tutorials/cdn-custom-domains.md) verificato.

* Dominio comune: `https://cdn.erlcrussia.com/YOUR_TEAM_SLUG/images/logo.png`
* Dominio personalizzato: `https://files.example.com/images/logo.png`

Sul dominio comune un team può usare solo `/{slug}/...`. Se `path` manca al caricamento, viene generato dal tipo di file.

Se esiste già un file con lo stesso `path`, la risposta è 409 e il file non viene sovrascritto. Usa un nuovo percorso per ogni versione.

## Cartelle

| Azione | Cosa succede ai file |
| - | - |
| Creare, rinominare o eliminare una cartella | Niente: gli indirizzi restano uguali |
| `PATCH /cdn/assets` con `folderId` | Il file passa a un'altra cartella nell'interfaccia |
| `PATCH /cdn/assets` con `path` | Il file ottiene un nuovo indirizzo |
| Cartella con `pathEnabled: true` | I nuovi caricamenti senza `path` ricevono il prefisso della cartella |

## Parametri comuni

| Parametro | Significato |
| - | - |
| `domain` | Spazio. Di default, quello del team della chiave |
| `ids` | ID dei file separati da virgole |
| `path` | Percorso esatto del file |
| `prefix` | Prefisso del percorso per un gruppo di file |
| `folderId` | Cartella: `root` senza cartella, `all` tutte |
| `page, limit` | Pagine dell'elenco, `limit` fino a 100 |

## Cache

Le risposte della CDN includono `X-Cache` (cache della CDN) e `CF-Cache-Status` (Cloudflare). Lo svuotamento (`POST /cdn/assets/purge`) viene accettato subito ed eseguito in background. Pubblicare nuove versioni a nuovi indirizzi è più affidabile che sostituire i file. Vedi [CI/CD e svuotamento della cache](https://apidocs.erlcrussia.com/it/tutorials/cdn-cache-purge-cicd.md).

## Risposte frequenti

| Risposta | Significato |
| - | - |
| 401, codice 5007 | Manca la chiave |
| 403, codice 5009 | Nessun accesso alla CDN del team |
| 409, codice 5135 | Il percorso è già occupato |
| 429, codice 5016 | Limite di richieste superato |

I file personali degli utenti del sito sono descritti in [File personali](https://apidocs.erlcrussia.com/it/other/user-assets.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.