Skip to content

Télécharger une ressource dans la bibliothèque multimédia

post

/media_library/create

Utilisez cet endpoint pour ajouter une ressource à la bibliothèque multimédia de Braze à l’aide d’une URL hébergée en externe (asset_url) ou de données de fichier binaire envoyées dans le corps de la requête (asset_file). Cet endpoint prend en charge les images et les fichiers ZIP contenant des images.

Conditions préalables

Pour utiliser cet endpoint, vous aurez besoin d’une clé API avec l’autorisation media_library.create.

Limite de débit

La limite de débit par défaut de Braze de 250 000 requêtes par heure s’applique à cet endpoint, comme documenté dans Limites de débit de l’API.

Corps de la requête

Lorsque vous incluez asset_url, l’endpoint télécharge le fichier à partir de l’URL. Lorsque vous incluez asset_file, l’endpoint utilise les données binaires dans le corps de la requête.

Exemple de corps de requête pour asset_url :

1
2
3
4
{
  "asset_url": "https://cdn.example.com/assets/cat.jpg",
  "name": "Cat Graphic"
}

Exemple de corps de requête pour asset_file :

1
2
3
4
{
  "asset_file": <BINARY FILE DATA>,
  "name": "Cat Graphic"
}

Le corps de la requête comprend les paramètres suivants :

Paramètre Requis Type de données Description
asset_url Facultatif Chaîne de caractères Une URL accessible au public pour la ressource à télécharger dans Braze.
asset_file Facultatif Binaire Données de fichier binaire.
name Facultatif Chaîne de caractères Un nom qui apparaîtra dans la bibliothèque multimédia pour cette ressource.

Noms des fichiers téléchargés

Cette section explique comment l’endpoint attribue des noms aux fichiers téléchargés selon que vous incluez ou non le paramètre name.

Téléchargements de fichiers individuels

Scénario Résultat
name fourni La valeur name est utilisée comme nom de la ressource dans la bibliothèque multimédia.
name exclu Le nom de fichier original provenant de l’URL ou du fichier téléchargé est utilisé.

Téléchargements de fichiers ZIP

Scénario Résultat
name fourni La valeur name est utilisée comme préfixe, avec un numéro incrémentiel ajouté comme suffixe (par exemple, « Mon fichier 1 », « Mon fichier 2 », « Mon fichier 3 »).
name exclu Chaque fichier conserve son nom d’origine tel qu’il figurait dans le fichier ZIP.

Exemple de requête

Cette section comprend deux exemples de requêtes curl, l’une pour ajouter une ressource à l’aide d’une URL et l’autre à l’aide de données de fichier binaire.

Cette requête illustre l’ajout d’une ressource à la bibliothèque multimédia à l’aide d’un asset_url.

1
2
3
4
curl -X POST --location 'https://rest.iad-01.braze.com/media_library/create' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--header 'Content-Type: application/json' \
--data '{"asset_url": "https://cdn.example.com/assets/cat.jpg", "name": "Cat Graphic"}'

Cette requête illustre l’ajout d’une ressource à la bibliothèque multimédia à l’aide d’un asset_file.

1
2
3
4
curl -X POST --location 'https://rest.iad-01.braze.com/media_library/create' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--header 'Content-Type: application/json' \
--data '{"asset_file":<BINARY FILE DATA>, "name":"Cat Graphic"}'

Réponses d’erreur

Cette section répertorie les erreurs potentielles ainsi que les messages et descriptions correspondants.

Erreurs de validation

Les erreurs de validation renvoient une structure telle que celle-ci :

1
2
3
{
  "message": (String) Human-readable error description
}

Ce tableau répertorie les erreurs de validation possibles.

Statut HTTP Message Description
400 “Either asset_url or asset_file must be provided.” Aucun paramètre de ressource n’a été fourni dans la requête.
400 “Both asset_url and asset_file cannot be provided. Please provide only one.” Les deux paramètres de ressource ont été fournis ; un seul est autorisé.
403 “Media Library Public APIs are not enabled for this company.” La fonctionnalité de bibliothèque multimédia n’est pas activée pour cet espace de travail.

Erreurs de traitement

Les erreurs de traitement renvoient une réponse différente avec des codes d’erreur :

1
2
3
4
5
{
  "message": (String) Human-readable error description,
  "error_code": (String) error code,
  "meta": { }
}

Ce tableau répertorie les erreurs de traitement possibles.

Code d’erreur Statut HTTP Description
UNSUPPORTED_FILE_TYPE 400 Le type de fichier téléchargé n’est pas pris en charge. L’objet meta contient le file_type qui a été rejeté.
ASSET_SIZE_EXCEEDS_LIMIT 400 Le fichier dépasse la taille maximale autorisée. Les images sont limitées à 5 Mo.
MEDIA_LIBRARY_LIMIT_REACHED 400 L’espace de travail a atteint son nombre maximal de ressources (200 par défaut pour les entreprises en période d’essai gratuit, illimité dans les autres cas). L’objet meta inclut la limit actuelle.
ASSET_UPLOAD_FAILED 400 Le téléchargement de la ressource a échoué en raison de problèmes de traitement.
ZIP_UPLOAD_ERROR 400 Le fichier ZIP est endommagé ou n’a pas pu être ouvert. L’objet meta contient le message original_error.
ZIP_FILE_TOO_LARGE 400 La taille totale non compressée du fichier ZIP dépasse la limite de 5 Mo. L’objet meta comprend le zip_file_name et le zip_file_size.
ZIPPED_ENTITY_HAS_NO_NAME 400 Une entrée de fichier à l’intérieur du ZIP n’a pas de nom. Assurez-vous que le fichier ZIP n’est pas endommagé et attribuez un nom à toute entrée de fichier sans nom.
ZIPPED_ENTITY_CANNOT_HAVE_NESTED_DIRECTORY 400 Le fichier ZIP contient des répertoires imbriqués, qui ne sont pas pris en charge. Tous les fichiers doivent se trouver à la racine du fichier ZIP.
GENERIC_ERROR 500 Une erreur imprévue s’est produite lors du téléchargement. L’objet meta contient le message original_error pour le débogage. Réessayez ou contactez l’assistance.

Réponse

Il existe cinq codes de statut de réponse pour cet endpoint : 200, 400, 403, 429 et 500.

Le JSON suivant présente la forme attendue de la réponse.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
    "new_assets": [
        {
            "name": (String) the name of the asset,
            "size": (Integer) the byte size of the asset,
            "url": (String) the URL to access the asset,
            "ext": (String) the file extension (e.g., "png", "jpg", "gif")
        }
    ],
    "errors": [
        {
            "name": (String) the name of the asset,
            "size": (Integer) the byte size of the asset,
            "ext": (String) the file extension (e.g., "png", "jpg", "gif"),
            "error": (String) the error that occurred
        }
    ],
    "dashboard_url": (String) the URL to view this asset in the Braze dashboard
}
New Stuff!