# General Translation Platform: Carica risorse del progetto URL: https://generaltranslation.com/it/docs/platform/openapi/reference/project/upload-assets.mdx --- title: Carica risorse del progetto description: Carica risorse di font per i workflow Lottie di General Translation in un'Organization. Riferimento API per il caricamento delle risorse del progetto. method: POST --- Carica font OpenType o TrueType tramite un progetto e li rende disponibili ai workflow di traduzione Lottie nell'intera Organization. ## Panoramica [#overview] ```http POST https://api2.gtx.dev/v2/project/assets ``` **Permesso** `project:files:write` · **Limite di frequenza** medio (120/min) ## Come funziona [#how-it-works] * Ogni richiesta accetta da uno a 50 font. * Ogni font deve essere in formato base64 valido, avere un nome file `.ttf` o `.otf` e decodificarsi in un file di dimensioni non superiori a 20 MB. * Il progetto determina quale Organization possiede le risorse. I font caricati persistono nei job di traduzione di tale Organization. * Ogni font è identificato da un'identità normalizzata composta da famiglia, peso e stile corsivo. Il server utilizza i valori `family` e `style` forniti oppure li ricava dai metadati del font e, in seguito, dal nome file. * Ricaricare un font con la stessa identità sovrascrive la risorsa esistente, anche se i byte o il nome file sono cambiati. * Correggi gli errori di input `400` prima di riprovare. Puoi ripetere l'intera richiesta senza rischi dopo una risposta `500`, perché viene eseguito l'upsert di ogni identità del font. ## Richiesta [#request] ### Header | Header | Descrizione | Obbligatorio | | ----------------- | ------------------------------------------------------------------------- | ------------ | | `x-gt-api-key` | Chiave API del progetto o dell'organizzazione. | Sì | | `x-gt-project-id` | ID del progetto. Obbligatorio quando si usa una chiave di organizzazione. | No | ### Corpo **Tipo di contenuto** `application/json` | Campo | Descrizione | Tipo | Facoltativo | Predefinito | | ------------------- | -------------------------------- | ---------- | ----------- | ----------- | | [`assets`](#assets) | Risorse di font da caricare (1–50). | `object[]` | No | — | #### `assets` **Tipo** `object[]` · **Obbligatorio** | Campo | Descrizione | Tipo | Facoltativo | Predefinito | | ----------- | --------------------------------------------------------------------------------------------------------------- | -------- | ----------- | --------------------------------------------- | | `assetType` | Tipo di risorsa. È supportato solo `FONT`. | `'FONT'` | No | — | | `content` | Contenuto del font codificato in Base64, fino a 20 MB dopo la decodifica. | `string` | No | — | | `fileName` | Nome del file del font con estensione `.ttf` o `.otf` (da 1 a 255 caratteri). | `string` | No | — | | `family` | Nome della famiglia di font usata dal file Lottie. Se omesso, il server lo ricava dal font o dal nome del file. | `string` | Sì | Derivato | | `style` | Stile o peso usato con `family`, ad esempio `Bold`, `350` o `Bold Italic`. Ignorato se `family` è omesso. | `string` | Sì | `Regular` (`400`) quando `family` è impostato | ## Risposta [#response] **Stato** `201 Created` | Campo | Descrizione | Tipo | | ------------------- | ---------------------------------------------------------------- | ---------- | | `assets` | Risorse di font caricate. | `object[]` | | `assets[].id` | ID della risorsa dell'organizzazione archiviata. | `string` | | `assets[].assetKey` | Identità normalizzata nel formato `-[-i]`. | `string` | | `assets[].fileName` | Nome del file nella richiesta. | `string` | | `count` | Numero di risorse caricate. | `number` | ```json title="Response" { "assets": [ { "id": "asset_...", "assetKey": "brandsans-700", "fileName": "BrandSans.ttf" } ], "count": 1 } ``` ## Errori [#errors] | Stato | Causa | | ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `400` | Corpo della richiesta non valido, base64 non valido, risorsa vuota, estensione file non supportata o risorsa di dimensioni superiori a 20 MB, oppure famiglia di font non determinabile. Fornisci `family` quando non è possibile ricavare l'identità; `style` rimane facoltativo e il valore predefinito è `400`. | | `401` | Chiave API mancante o non valida. | | `403` | La chiave API non dispone dell'autorizzazione `project:files:write`. | | `404` | Progetto non trovato. | | `413` | Il corpo della richiesta JSON supera 100 MB. | | `429` | Limite di richieste superato. | | `500` | Impossibile archiviare una risorsa. Riprova l'intera richiesta. | ## Esempio [#example] ```bash FONT_BASE64=$(base64 < ./BrandSans.ttf | tr -d '\n') curl -X POST https://api2.gtx.dev/v2/project/assets \ -H "x-gt-api-key: gtx-api-..." \ -H "Content-Type: application/json" \ -d "{ \"assets\": [ { \"assetType\": \"FONT\", \"content\": \"$FONT_BASE64\", \"fileName\": \"BrandSans.ttf\", \"family\": \"Brand Sans\", \"style\": \"Bold\" } ] }" ```