diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
commit | 33058f2b292b3a581333bdfb21b8f671898c5060 (patch) | |
tree | 51c3e392513ec574331b2d3f85c394445ea803c6 /files/fr/web/api/localfilesystem | |
parent | 8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff) | |
download | translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2 translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip |
initial commit
Diffstat (limited to 'files/fr/web/api/localfilesystem')
-rw-r--r-- | files/fr/web/api/localfilesystem/index.html | 202 |
1 files changed, 202 insertions, 0 deletions
diff --git a/files/fr/web/api/localfilesystem/index.html b/files/fr/web/api/localfilesystem/index.html new file mode 100644 index 0000000000..7740dded97 --- /dev/null +++ b/files/fr/web/api/localfilesystem/index.html @@ -0,0 +1,202 @@ +--- +title: LocalFileSystem +slug: Web/API/LocalFileSystem +translation_of: Web/API/LocalFileSystem +--- +<div>{{APIRef("File System API")}}{{non-standard_header()}}</div> + +<p>L'interface <code>LocalFileSystem</code>, appartenant à l'API <a href="/fr/docs/Web/API/File_and_Directory_Entries_API/Introduction" title="en/DOM/File_API/File_System_APIB">File System</a> fournit un accès à un système de fichier placé dans un bac à sable (<em>sandboxed file system</em>). Les méthodes de cette interface sont implémentées par les objets implémentants <code><a href="/fr/docs/Web/API/Window" title="cn/DOM/window">Window</a></code> ou <code><a href="/fr/docs/Web/API/Worker" title="En/DOM/Worker">Worker</a></code>.</p> + +<h2 id="Concepts_de_base">Concepts de base</h2> + +<h3 id="Créer_un_nouvel_espace_de_stockage">Créer un nouvel espace de stockage</h3> + +<p>Il est possible de demander l'accès à un système de fichier dans un bac à sable en utilisant la méthode <code>window.requestFileSystem()</code>. Lorsque la création de cet espace est effectuée, une fonction de rappel (<em>callback</em>) est appelée avec un objet <code><a href="/fr/docs/Web/API/FileSystem" title="en/DOM/File_API/File_System_API/FileSystem">FileSystem</a></code> contenant deux propriétés : le nom et la racine du système de fichier ainsi créé.</p> + +<p>Il est possible d'appeler cette méthode plusieurs fois pour différentes situations : on peut créer un espace de stockage temporaire et/ou un espace de stockage permanent (voir <a href="/fr/docs/Web/API/File_and_Directory_Entries_API/Introduction" title="https://developer.mozilla.org/en/DOM/File_APIs/Filesystem/Basic_Concepts_About_the_Filesystem_API#The_File_System_API_can_use_different_storage_types">l'article sur les concepts de base</a> pour approfondir). On peut ainsi créer un espace de stockage temporaire pour mettre en cache certains fichiers (des images par exemple) afin d'améliorer les performances ou créer un espace de stockage pour des données applicatives (ex. des brouillons de messages créés par l'utilisateur) qui ne devraient pas être supprimées avant d'être répliquées sur les serveurs distants.</p> + +<h3 id="Utiliser_un_stockage_persistent">Utiliser un stockage persistent</h3> + +<p>La méthode <code>requestFileSystem()</code> permet d'indiquer si on souhaite un stockage persistent ou temporaire. Un espace de stockage persistent est conservé dans le navigateur tant que l'utilisateur ou que l'application ne l'a pas supprimé. Pour créer un espace de stockage permanent, l'utilisateur doit fournir la permission à l'application de l'utiliser. En revanche, un espace de stockage temporaire peut être créé sans permission mais peut être libéré par le navigateur à tout moment.</p> + +<p>Pour utiliser un stockage permanent, Chrome expose la méthode <code>requestQuota</code>. Il faut invoquer cette méthode ainsi :</p> + +<pre class="notranslate">var requestedBytes = 1024*1024*10; // 10MB + +navigator.webkitPersistentStorage.requestQuota ( + requestedBytes, function(grantedBytes) { + window.requestFileSystem(PERSISTENT, grantedBytes, onInitFs, errorHandler); + + }, function(e) { console.log('Error', e); } +); +</pre> + +<p>L'utilisateur doit fournir la permission à l'application pour enregistrer des données locales avant que l'application puisse utiliser le stockage permanent. Une fois que l'utilisateur a autorisé l'accès, il n'est plus nécessaire d'appeler <code>requestQuota()</code> (des appels ultérieurs n'auront aucun effet).</p> + +<p>Une autre API, <em>Quota Management</em>, permet de connaître le quota alloué et l'espace consommé pour l'origine courante. On peut ainsi utiliser la méthode <code>window.webkitPersistentStorage.queryUsageAndQuota()</code>. Pour en savoir plus, voir cette <a href="http://stackoverflow.com/a/29662985/89484">réponse StackOverflow</a>.</p> + +<h3 id="Origine_unique">Origine unique</h3> + +<p>Le système de fichier est accessible depuis une seule origine. Cela signifie que votre application ne peut pas lire ou écrire des fichiers dans les systèmes de fichier éventuellement créés par d'autres applications. Par ailleurs, votre application ne peut pas accéder aux fichiers d'un répertoire arbitraire (ex. Mes Images, Mes Documents) sur le disque de l'utilisateur. Pour plus d'informations, voir <a href="/fr/docs/Web/API/File_and_Directory_Entries_API/Introduction" title="https://developer.mozilla.org/en/DOM/File_APIs/Filesystem/Basic_Concepts_About_the_Filesystem_API#Restrictions">l'article d'introduction aux concepts de base</a>.</p> + +<h3 id="Exemple">Exemple</h3> + +<p>Voici un fragment de code qui illustre comment demander l'accès à un stockage sur le système de fichier.</p> + +<pre class="brush: js notranslate">// Gestion des préfixes spécifiques au navigateur +window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; + +// Le premier paramètre indique le type de stockage +// Ensuite, on indique la taille de l'espace demandé (en octets) +// initFs est la fonction à invoquer en cas de succès +// errorHandler est la fonction à invoquer en cas d'erreur ou de refus d'accès + +window.requestFileSystem(window.PERSISTENT, 1024*1024,onInitFs,errorHandler); +</pre> + +<h2 id="Constantes">Constantes</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Constante</th> + <th scope="col">Valeur</th> + <th scope="col">Description</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>TEMPORARY</code></td> + <td><code>0</code></td> + <td>Un espace de stockage temporaire qui peut être supprimé par le navigateur lorsque celui-ci l'estime nécessaire.</td> + </tr> + <tr> + <td><code>PERSISTENT</code></td> + <td><code>1</code></td> + <td>Un espace de stockage qui reste permanent dans le navigateur tant que l'utilisateur ou que l'application ne l'a pas supprimé. L'utilisateur doit fournir une permission avant qu'une application puisse utiliser ce type de stockage.</td> + </tr> + </tbody> +</table> + +<h2 id="Méthodes">Méthodes</h2> + +<h3 id="requestFileSystem" name="requestFileSystem"><code>requestFileSystem()</code></h3> + +<p>Cette méthode permet de demander l'accès à uyn système de fichier pour stocker des données. On peut ainsi accéder à un système de fichier placé dans un bac à sable en demandant un objet <code>LocalFileSystem</code> avec la méthode globale <code>window.requestFileSystem()</code>.</p> + +<pre class="notranslate">void requestFileSystem( + in unsigned short type, + in unsigned long long size, + in FileSystemCallback successCallback, + in ErrorCallback errorCallback +);</pre> + +<h5 id="Paramètres">Paramètres</h5> + +<dl> + <dt><code>type</code></dt> + <dd>Le type de stockage sur le système de fichier. La valeur de cet argument peut être <code>TEMPORARY</code> ou <code>PERSISTENT</code>.</dd> + <dt><code>size</code></dt> + <dd>L'espace de stockage, exprimé en octets, nécessaire à l'application.</dd> + <dt><code>successCallback</code></dt> + <dd>Une fonction de rappel à invoquer lorsque le navigateur fournit bien l'accès au système de fichier. Cette fonction reçoit en argument un objet <code><a href="/fr/docs/Web/API/FileSystem" title="en/DOM/File_API/File_System_API/FileSystem">FileSystem</a></code> avec deux propriétés : + <ul> + <li><code>name</code> - le nom unique, assigné par le navigateur au système de fichiers.</li> + <li><code>root</code> - un objet <code>DirectoryEntry</code> en lecture seule qui représente la racine du système de fichier.</li> + </ul> + </dd> + <dt><code>errorCallback</code></dt> + <dd>Une fonction de rappel à invoquer en cas d'erreur ou lorsque l'accès n'est pas autorisé. Cette fonction reçoit un objet <code>FileError</code> comme argument.</dd> +</dl> + +<h5 id="Valeur_de_retour">Valeur de retour</h5> + +<dl> + <dt><code>void</code></dt> +</dl> + +<h5 id="Exceptions">Exceptions</h5> + +<p>Cette méthode peut lever une exception <code><a href="/en-US/docs/Web/API/FileError" title="en/DOM/File_API/File_System_API/FileException">FileError</a></code> avec le code suivant :</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Exception</th> + <th scope="col">Description</th> + </tr> + <tr> + <td><code>SECURITY_ERROR</code></td> + <td>L'application n'est pas autorisée à accéder à l'interface <em>File System</em>. Par exemple, il est interdit d'utiliser <code>file://</code>. Pour plus de détails, consulter <a href="/fr/docs/Web/API/File_and_Directory_Entries_API/Introduction#restrictions" title="https://developer.mozilla.org/en/DOM/File_APIs/Filesystem/Basic_Concepts_About_the_Filesystem_API#You_cannot_run_your_app_from_file:.2F.2F">l'article d'introduction aux concepts de base</a>.</td> + </tr> + </thead> +</table> + +<h3 id="resolveLocalFileSystemURL" name="resolveLocalFileSystemURL()"><code>resolveLocalFileSystemURL()</code></h3> + +<p>Cette méthode permet de consulter une entrée pour un fichier ou un répertoire avec une URL locale.</p> + +<pre class="notranslate">void resolveLocalFileSystemURL( + in DOMString url, + in EntryCallback successCallback, + in optional ErrorCallback errorCallback +); +</pre> + +<h5 id="Paramètres_2">Paramètres</h5> + +<dl> + <dt><code>url</code></dt> + <dd>L'URL du fichier local ou du répertoire sur le système de fichier.</dd> + <dt><code>successCallback</code></dt> + <dd>Une fonction de rappel à invoquer lorsque le navigateur fournit le fichier ou le répertoire de l'URL indiquée.</dd> + <dt><code>errorCallback</code></dt> + <dd>Une fonction de rappel à invoquer en cas d'erreur ou lorsque l'accès est refusé.</dd> +</dl> + +<h5 id="Valeur_de_retour_2">Valeur de retour</h5> + +<dl> + <dt><code>void</code></dt> +</dl> + +<h5 id="Exceptions_2">Exceptions</h5> + +<p>Cette méthode peut lever une exception <code><a href="/fr/docs/Web/API/FileError" title="en/DOM/File_API/File_System_API/FileException">FileError</a></code> avec l'un des code suivants :</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Exception</th> + <th scope="col">Description</th> + </tr> + <tr> + <td><code>ENCODING_ERR</code></td> + <td>La syntaxe de l'URL est invalide.</td> + </tr> + <tr> + <td><code>NOT_FOUND_ERR</code></td> + <td>La structure de l'URL est correcte mais elle réfère à une ressource qui n'existe pas.</td> + </tr> + </thead> + <tbody> + <tr> + <td><code>SECURITY_ERR</code></td> + <td>L'application n'est pas autorisée à accéder à l'interface pour le système de fichier.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_Compatibility" name="Browser_Compatibility">Compatibilité des navigateurs</h2> + +<div class="hidden">Voir <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> pour contribuer à ces données de compatibilité.</div> + +<p>{{Compat("api.LocalFileSystem")}}</p> + +<h2 id="Voir_aussi">Voir aussi</h2> + +<ul> + <li>La spécification : {{spec("http://dev.w3.org/2009/dap/file-system/pub/FileSystem/", "File API: Directories and System Specification", "WD")}}</li> + <li><a href="/fr/docs/Web/API/File_and_Directory_Entries_API/Introduction" title="en/DOM/File_API/File_System_API">La référence pour l'API <em>File System</em></a></li> + <li><a href="/fr/docs/Web/API/File_and_Directory_Entries_API/Introduction" title="en/DOM/File_APIs/Filesystem/Basic_Concepts_About_the_Filesystem_API">Une introduction aux concepts de base de l'API <em>File System</em></a></li> +</ul> |