Django offre deux manières pratiques d’accéder à la classe de stockage active :
DefaultStorage offre un accès différé au système de stockage par défaut en cours tel que défini par DEFAULT_FILE_STORAGE. DefaultStorage utilise get_storage_class() en interne.
Renvoie une classe ou un module qui implémente l’API de stockage.
Lorsqu’on l’appelle sans le paramètre import_path, get_storage_class renvoie le système de stockage par défaut en cours tel que défini par DEFAULT_FILE_STORAGE. Si import_path est fourni, get_storage_class 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.
La classe FileSystemStorage implémente le stockage de fichiers de base sur un système de fichiers local. Elle hérite de Storage et offre des implémentations pour toutes les méthodes publiques de celle-ci.
Note
La méthode FileSystemStorage.delete() ne renvoie pas d’exception si le nom de fichier fourni en paramètre n’existe pas.
La classe Storage 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.
Renvoie une objet datetime contenant la date du dernier accès au fichier. Pour les systèmes de stockage qui ne peuvent pas renvoyer la date du dernier accès, cette méthode génère l’exception NotImplementedError.
Renvoie une objet datetime contenant la date de création du fichier. Pour les systèmes de stockage qui ne peuvent pas renvoyer la date de création, cette méthode génère l’exception NotImplementedError.
Supprime le fichier désigné par name. Si la suppression n’est pas prise en charge par le système de stockage cible, une exception NotImplementedError est générée.
Renvoie True si le fichier désigné par le nom indiqué existe déjà dans le système de stockage, ou False si le nom est disponible pour un nouveau fichier.
Renvoie un nom de fichier sur la base du paramètre name et qui est disponible pour recevoir un nouveau contenu à écrire sur le système de stockage cible.
If a file with name already exists, an underscore plus a random 7 character alphanumeric string is appended to the filename before the extension.
Previously, an underscore followed by a number (e.g. "_1", "_2", etc.) was appended to the filename until an available name in the destination directory was found. A malicious user could exploit this deterministic algorithm to create a denial-of-service attack. This change was also made in Django 1.5.9 and 1.4.14.
Renvoie un nom de fichier sur la base du paramètre name et qui est adapté aux usages du système de stockage cible.
É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 NotImplementedError est générée.
Renvoie une objet datetime contenant la date de la dernière modification du fichier. Pour les systèmes de stockage qui ne peuvent pas renvoyer la date de dernière modification, cette méthode génère l’exception NotImplementedError.
Ouvre le fichier désigné par name. Notez que bien que le fichier renvoyé soit garanti être un objet File, 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.
Le chemin du système de fichiers local où le fichier peut être ouvert en utilisant l’appel Python standard open(). 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 NotImplementedError.
Enregistre un nouveau fichier en utilisant le système de stockage, de préférence avec le nom indiqué. Si le nom name 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é.
Le paramètre content doit être une instance de django.core.files.File ou d’une sous-classe de django.core.files.File.
Jan 13, 2016