{"title":"API de stockage des fichiers","version":"4.2","locale":"fr","docname":"ref/files/storage","url":"/fr/4.2/ref/files/storage/","canonical":"https://djangodocs.dev/fr/4.2/ref/files/storage/","summary":"Django offre des manières pratiques d’accéder à la classe de stockage par défaut.","html":"<span id=\"file-storage-api\"></span><h1>API de stockage des fichiers<a class=\"heading-anchor\" href=\"#module-django.core.files.storage\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"getting-the-default-storage-class\">\n<h2>Obtention de la classe de stockage par défaut<a class=\"heading-anchor\" href=\"#getting-the-default-storage-class\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django offre des manières pratiques d’accéder à la classe de stockage par défaut :</p>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.storages\">\n<span class=\"sig-name descname\">storages</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.storages\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"4.2\" role=\"note\">\n<p class=\"version-note-title\">New in Django 4.2</p></aside>\n<p>Les instances de stockages telles que définies par <a class=\"reference internal\" href=\"/fr/4.2/ref/settings/#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\">STORAGES</code></a>.</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.DefaultStorage\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">DefaultStorage</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.DefaultStorage\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.core.files.storage.DefaultStorage\" title=\"django.core.files.storage.DefaultStorage\"><code class=\"xref py py-class docutils literal notranslate\">DefaultStorage</code></a> offre un accès différé au système de stockage par défaut tel que défini par la clé <code class=\"docutils literal notranslate\">default</code> dans <a class=\"reference internal\" href=\"/fr/4.2/ref/settings/#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\">STORAGES</code></a>. <a class=\"reference internal\" href=\"#django.core.files.storage.DefaultStorage\" title=\"django.core.files.storage.DefaultStorage\"><code class=\"xref py py-class docutils literal notranslate\">DefaultStorage</code></a> utilise <a class=\"reference internal\" href=\"#django.core.files.storage.storages\" title=\"django.core.files.storage.storages\"><code class=\"xref py py-data docutils literal notranslate\">storages</code></a> en interne.</p>\n</dd></dl>\n\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.default_storage\">\n<span class=\"sig-name descname\">default_storage</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.default_storage\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.core.files.storage.default_storage\" title=\"django.core.files.storage.default_storage\"><code class=\"xref py py-data docutils literal notranslate\">default_storage</code></a> est une instance de <a class=\"reference internal\" href=\"#django.core.files.storage.DefaultStorage\" title=\"django.core.files.storage.DefaultStorage\"><code class=\"xref py py-class docutils literal notranslate\">DefaultStorage</code></a>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.get_storage_class\">\n<span class=\"sig-name descname\">get_storage_class</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">import_path<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.get_storage_class\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie une classe ou un module qui implémente l’API de stockage.</p>\n<p>Lorsqu’on l’appelle sans le paramètre <code class=\"docutils literal notranslate\">import_path</code>, <code class=\"docutils literal notranslate\">get_storage_class</code> renvoie le système de stockage par défaut tel que défini par la clé <code class=\"docutils literal notranslate\">default</code> dans <a class=\"reference internal\" href=\"/fr/4.2/ref/settings/#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\">STORAGES</code></a>. Si <code class=\"docutils literal notranslate\">import_path</code> est fourni, <code class=\"docutils literal notranslate\">get_storage_class</code> essaie d’importer la classe ou le module désigné par le chemin donné et le renvoie en cas de succès. Une exception est générée si l’importation échoue.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"4.2\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 4.2</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 4.2: </span>La fonction <code class=\"docutils literal notranslate\">get_storage_class()</code> est obsolète. Utilisez <a class=\"reference internal\" href=\"#django.core.files.storage.storages\" title=\"django.core.files.storage.storages\"><code class=\"xref py py-data docutils literal notranslate\">storages</code></a> à la place.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"the-filesystemstorage-class\">\n<h2>La classe <code class=\"docutils literal notranslate\">FileSystemStorage</code><a class=\"heading-anchor\" href=\"#the-filesystemstorage-class\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.FileSystemStorage\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">FileSystemStorage</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">location<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">base_url<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">file_permissions_mode<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">directory_permissions_mode<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.FileSystemStorage\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La classe <a class=\"reference internal\" href=\"#django.core.files.storage.FileSystemStorage\" title=\"django.core.files.storage.FileSystemStorage\"><code class=\"xref py py-class docutils literal notranslate\">FileSystemStorage</code></a> implémente le stockage de fichiers de base sur un système de fichiers local. Elle hérite de <a class=\"reference internal\" href=\"#django.core.files.storage.Storage\" title=\"django.core.files.storage.Storage\"><code class=\"xref py py-class docutils literal notranslate\">Storage</code></a>  et offre des implémentations pour toutes les méthodes publiques de celle-ci.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.FileSystemStorage.location\">\n<span class=\"sig-name descname\">location</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.FileSystemStorage.location\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Chemin absolu vers le répertoire qui contiendra les fichiers. La valeur par défaut est la valeur du réglage <a class=\"reference internal\" href=\"/fr/4.2/ref/settings/#std-setting-MEDIA_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\">MEDIA_ROOT</code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.FileSystemStorage.base_url\">\n<span class=\"sig-name descname\">base_url</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.FileSystemStorage.base_url\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>URL de base pour servir les fichiers stockés à cet emplacement. La valeur par défaut est la valeur du réglage <a class=\"reference internal\" href=\"/fr/4.2/ref/settings/#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\">MEDIA_URL</code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.FileSystemStorage.file_permissions_mode\">\n<span class=\"sig-name descname\">file_permissions_mode</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.FileSystemStorage.file_permissions_mode\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Les permissions de système de fichiers que le fichier reçoit quand il est enregistré. La valeur par défaut correspond à <a class=\"reference internal\" href=\"/fr/4.2/ref/settings/#std-setting-FILE_UPLOAD_PERMISSIONS\"><code class=\"xref std std-setting docutils literal notranslate\">FILE_UPLOAD_PERMISSIONS</code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.FileSystemStorage.directory_permissions_mode\">\n<span class=\"sig-name descname\">directory_permissions_mode</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.FileSystemStorage.directory_permissions_mode\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Les permissions de système de fichiers que le répertoire reçoit quand il est enregistré. La valeur par défaut correspond à <a class=\"reference internal\" href=\"/fr/4.2/ref/settings/#std-setting-FILE_UPLOAD_DIRECTORY_PERMISSIONS\"><code class=\"xref std std-setting docutils literal notranslate\">FILE_UPLOAD_DIRECTORY_PERMISSIONS</code></a>.</p>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>La méthode <code class=\"docutils literal notranslate\">FileSystemStorage.delete()</code> ne renvoie pas d’exception si le nom de fichier fourni en paramètre n’existe pas.</p>\n</aside>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.FileSystemStorage.get_created_time\">\n<span class=\"sig-name descname\">get_created_time</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.FileSystemStorage.get_created_time\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie une heure <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">datetime</code></a> de la valeur ctime du système, c’est-à-dire <a class=\"reference external\" href=\"https://docs.python.org/3/library/os.path.html#os.path.getctime\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\">os.path.getctime()</code></a>. Sur certains systèmes (comme Unix), il s’agit de la date de la dernière modification de métadonnée du fichier alors que sur d’autres systèmes (comme Windows), il s’agit de la date de création du fichier.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"the-inmemorystorage-class\">\n<h2>La classe <code class=\"docutils literal notranslate\">InMemoryStorage</code><a class=\"heading-anchor\" href=\"#the-inmemorystorage-class\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<aside class=\"version-note version-added\" data-version=\"4.2\" role=\"note\">\n<p class=\"version-note-title\">New in Django 4.2</p></aside>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.InMemoryStorage\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">InMemoryStorage</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">location<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">base_url<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">file_permissions_mode<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">directory_permissions_mode<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.InMemoryStorage\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La classe <a class=\"reference internal\" href=\"#django.core.files.storage.InMemoryStorage\" title=\"django.core.files.storage.InMemoryStorage\"><code class=\"xref py py-class docutils literal notranslate\">InMemoryStorage</code></a> implémente un stockage de fichiers en mémoire vive. Il n’a aucune persistence mais peut être utile pour accélérer les tests en évitant d’accéder au disque.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.InMemoryStorage.location\">\n<span class=\"sig-name descname\">location</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.InMemoryStorage.location\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Chemin absolu vers le nom ue répertoire dédié aux fichiers. La valeur par défaut est la valeur du réglage <a class=\"reference internal\" href=\"/fr/4.2/ref/settings/#std-setting-MEDIA_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\">MEDIA_ROOT</code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.InMemoryStorage.base_url\">\n<span class=\"sig-name descname\">base_url</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.InMemoryStorage.base_url\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>URL de base pour servir les fichiers stockés à cet emplacement. La valeur par défaut est la valeur du réglage <a class=\"reference internal\" href=\"/fr/4.2/ref/settings/#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\">MEDIA_URL</code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.InMemoryStorage.file_permissions_mode\">\n<span class=\"sig-name descname\">file_permissions_mode</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.InMemoryStorage.file_permissions_mode\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Les permissions de système de fichiers attribuées aux fichiers, données par compatibilité avec <code class=\"docutils literal notranslate\">FileSystemStorage</code>. La valeur par défaut correspond à <a class=\"reference internal\" href=\"/fr/4.2/ref/settings/#std-setting-FILE_UPLOAD_PERMISSIONS\"><code class=\"xref std std-setting docutils literal notranslate\">FILE_UPLOAD_PERMISSIONS</code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.InMemoryStorage.directory_permissions_mode\">\n<span class=\"sig-name descname\">directory_permissions_mode</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.InMemoryStorage.directory_permissions_mode\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Les permissions de système de fichiers attribuées aux répertoires, données par compatibilité avec <code class=\"docutils literal notranslate\">FileSystemStorage</code>. La valeur par défaut correspond à <a class=\"reference internal\" href=\"/fr/4.2/ref/settings/#std-setting-FILE_UPLOAD_DIRECTORY_PERMISSIONS\"><code class=\"xref std std-setting docutils literal notranslate\">FILE_UPLOAD_DIRECTORY_PERMISSIONS</code></a>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"the-storage-class\">\n<h2>La classe <code class=\"docutils literal notranslate\">Storage</code><a class=\"heading-anchor\" href=\"#the-storage-class\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.Storage\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Storage</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.Storage\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La classe <a class=\"reference internal\" href=\"#django.core.files.storage.Storage\" title=\"django.core.files.storage.Storage\"><code class=\"xref py py-class docutils literal notranslate\">Storage</code></a> fournit une API standardisée pour le stockage de fichiers, accompagnée d’un ensemble de comportements par défaut que tous les autres systèmes de stockage peuvent hériter ou surcharger en cas de besoin.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Lorsque les méthodes renvoient des objets <code class=\"docutils literal notranslate\">datetime</code> naïfs, le fuseau horaire réellement utilisé correspond à la valeur actuelle de <code class=\"docutils literal notranslate\">os.environ['TZ']</code>. Notez que cette valeur est généralement définie à partir du réglage <a class=\"reference internal\" href=\"/fr/4.2/ref/settings/#std-setting-TIME_ZONE\"><code class=\"xref std std-setting docutils literal notranslate\">TIME_ZONE</code></a> de Django.</p>\n</aside>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.Storage.delete\">\n<span class=\"sig-name descname\">delete</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.Storage.delete\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Supprime le fichier désigné par <code class=\"docutils literal notranslate\">name</code>. Si la suppression n’est pas prise en charge par le système de stockage cible, une exception <code class=\"docutils literal notranslate\">NotImplementedError</code> est générée.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.Storage.exists\">\n<span class=\"sig-name descname\">exists</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.Storage.exists\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie <code class=\"docutils literal notranslate\">True</code> si le fichier désigné par le nom indiqué existe déjà dans le système de stockage, ou <code class=\"docutils literal notranslate\">False</code> si le nom est disponible pour un nouveau fichier.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.Storage.get_accessed_time\">\n<span class=\"sig-name descname\">get_accessed_time</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.Storage.get_accessed_time\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie une date/heure <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">datetime</code></a> du dernier accès au fichier. Pour les systèmes de stockage incapables de renvoyer la date du dernier accès, cette méthode génère l’exception <a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#NotImplementedError\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\">NotImplementedError</code></a>.</p>\n<p>Si <a class=\"reference internal\" href=\"/fr/4.2/ref/settings/#std-setting-USE_TZ\"><code class=\"xref std std-setting docutils literal notranslate\">USE_TZ</code></a> vaut <code class=\"docutils literal notranslate\">True</code>, renvoie un objet <code class=\"docutils literal notranslate\">datetime</code> conscient, sinon un objet <code class=\"docutils literal notranslate\">datetime</code> naïf est renvoyé dans le fuseau horaire local.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.Storage.get_alternative_name\">\n<span class=\"sig-name descname\">get_alternative_name</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">file_root</em>, <em class=\"sig-param\">file_ext</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.Storage.get_alternative_name\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie un nom de fichier différent basé sur les paramètres <code class=\"docutils literal notranslate\">file_root</code> et <code class=\"docutils literal notranslate\">file_ext</code>. Un soulignement suivi d’une chaîne aléatoire de 7 caractères alphanumériques sont ajoutés à la fin du nom du fichier avant l’extension.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.Storage.get_available_name\">\n<span class=\"sig-name descname\">get_available_name</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em>, <em class=\"sig-param\">max_length<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.Storage.get_available_name\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie un nom de fichier sur la base du paramètre <code class=\"docutils literal notranslate\">name</code> et qui est disponible pour recevoir un nouveau contenu à écrire sur le système de stockage cible.</p>\n<p>La longueur du nom de fichier ne dépassera pas <code class=\"docutils literal notranslate\">max_length</code>, si cette option est indiquée. Si un nom de fichier unique n’est pas disponible, une exception <a class=\"reference internal\" href=\"/fr/4.2/ref/exceptions/#django.core.exceptions.SuspiciousOperation\" title=\"django.core.exceptions.SuspiciousOperation\"><code class=\"xref py py-exc docutils literal notranslate\">SuspiciousFileOperation</code></a> est générée.</p>\n<p>Si un fichier avec <code class=\"docutils literal notranslate\">name</code> existe déjà, <a class=\"reference internal\" href=\"/fr/4.2/howto/custom-file-storage/#django.core.files.storage.get_alternative_name\" title=\"django.core.files.storage.get_alternative_name\"><code class=\"xref py py-meth docutils literal notranslate\">get_alternative_name()</code></a> est appelée pour obtenir un nom différent.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.Storage.get_created_time\">\n<span class=\"sig-name descname\">get_created_time</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.Storage.get_created_time\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie une date/heure <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">datetime</code></a> de création du fichier. Pour les systèmes de stockage incapables de renvoyer la date de création, cette méthode génère l’exception <a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#NotImplementedError\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\">NotImplementedError</code></a>.</p>\n<p>Si <a class=\"reference internal\" href=\"/fr/4.2/ref/settings/#std-setting-USE_TZ\"><code class=\"xref std std-setting docutils literal notranslate\">USE_TZ</code></a> vaut <code class=\"docutils literal notranslate\">True</code>, renvoie un objet <code class=\"docutils literal notranslate\">datetime</code> conscient, sinon un objet <code class=\"docutils literal notranslate\">datetime</code> naïf est renvoyé dans le fuseau horaire local.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.Storage.get_modified_time\">\n<span class=\"sig-name descname\">get_modified_time</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.Storage.get_modified_time\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie une date/heure <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">datetime</code></a> de la dernière modification du fichier. Pour les systèmes de stockage incapables de renvoyer la date de dernière modification, cette méthode génère l’exception <a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#NotImplementedError\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\">NotImplementedError</code></a>.</p>\n<p>Si <a class=\"reference internal\" href=\"/fr/4.2/ref/settings/#std-setting-USE_TZ\"><code class=\"xref std std-setting docutils literal notranslate\">USE_TZ</code></a> vaut <code class=\"docutils literal notranslate\">True</code>, renvoie un objet <code class=\"docutils literal notranslate\">datetime</code> conscient, sinon un objet <code class=\"docutils literal notranslate\">datetime</code> naïf est renvoyé dans le fuseau horaire local.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.Storage.get_valid_name\">\n<span class=\"sig-name descname\">get_valid_name</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.Storage.get_valid_name\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie un nom de fichier sur la base du paramètre <code class=\"docutils literal notranslate\">name</code> et qui est adapté aux usages du système de stockage cible.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.Storage.generate_filename\">\n<span class=\"sig-name descname\">generate_filename</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">filename</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.Storage.generate_filename\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Valide le nom de fichier <code class=\"docutils literal notranslate\">filename</code> en appelant <a class=\"reference internal\" href=\"/fr/4.2/howto/custom-file-storage/#django.core.files.storage.get_valid_name\" title=\"django.core.files.storage.get_valid_name\"><code class=\"xref py py-attr docutils literal notranslate\">get_valid_name()</code></a> et renvoie un nom de fichier à transmettre à la méthode <a class=\"reference internal\" href=\"#django.core.files.storage.Storage.save\" title=\"django.core.files.storage.Storage.save\"><code class=\"xref py py-meth docutils literal notranslate\">save()</code></a>.</p>\n<p>Le paramètre <code class=\"docutils literal notranslate\">filename</code> peut inclure un chemin tel que renvoyé par <a class=\"reference internal\" href=\"/fr/4.2/ref/models/fields/#django.db.models.FileField.upload_to\" title=\"django.db.models.FileField.upload_to\"><code class=\"xref py py-attr docutils literal notranslate\">FileField.upload_to</code></a>. Dans ce cas, le chemin ne sera pas transmis à <a class=\"reference internal\" href=\"/fr/4.2/howto/custom-file-storage/#django.core.files.storage.get_valid_name\" title=\"django.core.files.storage.get_valid_name\"><code class=\"xref py py-attr docutils literal notranslate\">get_valid_name()</code></a>, mais sera ajouté au début du nom résultant.</p>\n<p>L’implémentation par défaut utilise des opérations <a class=\"reference external\" href=\"https://docs.python.org/3/library/os.path.html#module-os.path\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-mod docutils literal notranslate\">os.path</code></a>. Surchargez cette méthode si ce n’est pas approprié pour votre type de stockage.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.Storage.listdir\">\n<span class=\"sig-name descname\">listdir</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">path</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.Storage.listdir\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Énumère le contenu du chemin indiqué, renvoyant un tuple de deux listes ; la première est une liste de répertoires, la seconde contient les fichiers. Pour les systèmes de stockage qui ne peuvent pas fournir une telle liste, une exception <code class=\"docutils literal notranslate\">NotImplementedError</code> est générée.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.Storage.open\">\n<span class=\"sig-name descname\">open</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em>, <em class=\"sig-param\">mode<span class=\"o\">=</span><span class=\"default_value\">'rb'</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.Storage.open\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ouvre le fichier désigné par <code class=\"docutils literal notranslate\">name</code>. Notez que bien que le fichier renvoyé soit garanti être un objet <code class=\"docutils literal notranslate\">File</code>, il se peut qu’il s’agisse d’une sous-classe. Dans le cas de systèmes de stockage distants, cela signifie que la lecture et l’écriture peuvent être lentes, il faut le savoir.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.Storage.path\">\n<span class=\"sig-name descname\">path</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.Storage.path\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Le chemin du système de fichiers local où le fichier peut être ouvert en utilisant l’appel Python standard <code class=\"docutils literal notranslate\">open()</code>. Pour les systèmes de stockage qui ne sont pas accessibles à partir du système de fichiers local, cette méthode génère une exception <code class=\"docutils literal notranslate\">NotImplementedError</code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.Storage.save\">\n<span class=\"sig-name descname\">save</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em>, <em class=\"sig-param\">content</em>, <em class=\"sig-param\">max_length<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.Storage.save\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Enregistre un nouveau fichier en utilisant le système de stockage, de préférence avec le nom indiqué. Si le nom <code class=\"docutils literal notranslate\">name</code> est déjà utilisé pour un autre fichier, le système de stockage peut modifier le nom de fichier afin d’obtenir un nom unique si nécessaire. Le nom réellement utilisé pour stocker le fichier est renvoyé.</p>\n<p>Le paramètre <code class=\"docutils literal notranslate\">max_length</code> est transmis plus loin à <a class=\"reference internal\" href=\"/fr/4.2/howto/custom-file-storage/#django.core.files.storage.get_available_name\" title=\"django.core.files.storage.get_available_name\"><code class=\"xref py py-meth docutils literal notranslate\">get_available_name()</code></a>.</p>\n<p>Le paramètre <code class=\"docutils literal notranslate\">content</code> doit être une instance de <a class=\"reference internal\" href=\"/fr/4.2/ref/files/file/#django.core.files.File\" title=\"django.core.files.File\"><code class=\"xref py py-class docutils literal notranslate\">django.core.files.File</code></a> ou d’un objet de type fichier pouvant être enveloppé par <code class=\"docutils literal notranslate\">File</code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.Storage.size\">\n<span class=\"sig-name descname\">size</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.Storage.size\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie la taille totale en octets du fichier désigné par <code class=\"docutils literal notranslate\">name</code>. Pour les systèmes de stockage qui ne peuvent pas renvoyer la taille des fichiers, cette méthode génère l’exception <code class=\"docutils literal notranslate\">NotImplementedError</code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.storage.Storage.url\">\n<span class=\"sig-name descname\">url</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.storage.Storage.url\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie l’URL permettant d’accéder au contenu du fichier désigné par <code class=\"docutils literal notranslate\">name</code>. Pour les systèmes de stockage qui ne permettent pas l’accès par URL, cette méthode génère l’exception <code class=\"docutils literal notranslate\">NotImplementedError</code>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>","rootId":"module-django.core.files.storage","toc":[{"title":"Obtention de la classe de stockage par défaut","anchor":"getting-the-default-storage-class","children":[]},{"title":"La classe FileSystemStorage","anchor":"the-filesystemstorage-class","children":[]},{"title":"La classe InMemoryStorage","anchor":"the-inmemorystorage-class","children":[]},{"title":"La classe Storage","anchor":"the-storage-class","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Référence de l’API","url":"/fr/4.2/ref/"},{"docname":"ref/files/index","title":"Gestion des fichiers","url":"/fr/4.2/ref/files/"}],"prev":{"docname":"ref/files/file","title":"L’objet File","url":"/fr/4.2/ref/files/file/"},"next":{"docname":"ref/files/uploads","title":"Fichiers téléversés et gestionnaires de téléversement","url":"/fr/4.2/ref/files/uploads/"},"formats":{"html":"/fr/4.2/ref/files/storage/","markdown":"/fr/4.2/ref/files/storage.md","json":"/fr/4.2/ref/files/storage.json"},"source":"https://github.com/django/django/blob/stable/4.2.x/docs/ref/files/storage.txt","official":"https://docs.djangoproject.com/fr/4.2/ref/files/storage/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}