Compatibilité avec plusieurs lecteurs et rédacteurs pour FileSystemSyncAccessHandle, et rédacteur exclusif pour FileSystemWritableFileStream.
Plusieurs lecteurs et rédacteurs pour FileSystemSyncAccessHandle
Le système de fichiers privés d'origine (parfois également appelé système de fichiers de bucket) permet aux développeurs d'accéder à des fichiers optimisés pour des performances de lecture et d'écriture maximales. Cela se produit via des objets FileSystemSyncAccessHandle
. Actuellement, la tentative d'ouverture de plusieurs objets FileSystemSyncAccessHandle
pour la même entrée de fichier échoue et renvoie une erreur NoModificationAllowedError
. Comme cette contrainte est limitée dans certains cas d'utilisation, Chrome 121 introduit un nouveau paramètre mode
pour la méthode FileSystemFileHandle.createSyncAccessHandle()
avec les valeurs de chaîne autorisées suivantes:
"readwrite"
: valeur par défaut actuelle. Une fois ouverte, toutes les méthodes surFileSystemSyncAccessHandle
sont autorisées. Une seule instance deFileSystemSyncAccessHandle
est autorisée."read-only"
: autorise plusieurs lecteurs. Une fois ouvertes, seules les méthodes de lecture surFileSystemSyncAccessHandle
sont autorisées:read()
,getSize()
etclose()
. Plusieurs instances deFileSystemSyncAccessHandle
peuvent être créées, à condition qu'elles soient toutes en mode lecture seule."readwrite-unsafe"
: plusieurs rédacteurs autorisés. Une fois ouverte, toutes les méthodes surFileSystemSyncAccessHandle
sont autorisées. Plusieurs instances deFileSystemSyncAccessHandle
peuvent être créées, à condition qu'elles soient toutes en mode non sécurisé en lecture/écriture.
Le comportement actuel est préservé en conservant l'option "readwrite"
par défaut, ce qui n'autorise qu'une seule instance à la fois. Si un site doit ouvrir plusieurs objets FileSystemSyncAccessHandle
, mais n'a pas besoin d'effectuer d'écritures, vous devez utiliser l'option "read-only"
. Enfin, la dernière option "readwrite-unsafe"
autorise plusieurs instances, ainsi qu'une lecture et une écriture. Dans ce cas, les écritures peuvent être pour adultes si elles sont effectuées à partir de plusieurs onglets, et les sites doivent fournir leur propre schéma de verrouillage.
const handle1 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});
// This will succeed:
const handle2 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});
Rédacteur exclusif pour FileSystemWritableFileStream
Contrairement à FileSystemSyncAccessHandle
, plusieurs instances de FileSystemWritableFileStream
peuvent être créées par entrée de fichier aujourd'hui. Ce qui manque, c'est un moyen de proposer une option pour un auteur exclusif. Chrome 121 ajoute un paramètre mode
facultatif à la méthode FileSystemAccessFileHandle.createWritable()
avec les valeurs suivantes:
- Mode
"exclusive"
: un seul auteur peut exister à la fois. - Mode
"siloed"
: il s'agit du mode par défaut actuel. Chaque auteur créé possède son propre fichier d'échange.
const writable1 = await handle.createWritable({mode: 'exclusive'});
// This will fail:
const writable2 = await handle.createWritable();
Prise en charge des navigateurs
Les deux fonctionnalités, à savoir plusieurs lecteurs et rédacteurs pour FileSystemSyncAccessHandle
, et écriture exclusive pour FileSystemWritableFileStream
, sont compatibles à partir de Chrome 121.
Accéder à l'essai de développement
Pour participer à l'essai de développement et tester la fonctionnalité avant le lancement de Chrome 121, définissez l'indicateur #file-system-access-locking-scheme
dans chrome://flags
sur Activé. Cela vous permettra de tester la fonctionnalité localement sur votre ordinateur.
Remerciements
Cet article a été lu par Daseul Lee, Nathan Memmott et Rachel Andrew.