Prise en charge de 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é d'origine (parfois 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 fait via des objets FileSystemSyncAccessHandle
. Actuellement, la tentative d'ouverture de plusieurs objets FileSystemSyncAccessHandle
pour la même entrée de fichier échoue avec une erreur NoModificationAllowedError
. Dans certains cas d'utilisation, cette contrainte est limitative. Chrome 121 introduit donc 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 ouvert, toutes les méthodes surFileSystemSyncAccessHandle
sont autorisées. Une seule instance deFileSystemSyncAccessHandle
est autorisée."read-only"
: permet plusieurs lecteurs. Une fois ouvert, seules les méthodes de lecture surFileSystemSyncAccessHandle
sont autorisées:read()
,getSize()
etclose()
. Vous pouvez créer plusieurs instances deFileSystemSyncAccessHandle
tant qu'elles sont toutes en mode lecture seule."readwrite-unsafe"
: autorise plusieurs scénaristes. Une fois ouvert, toutes les méthodes surFileSystemSyncAccessHandle
sont autorisées. Vous pouvez créer plusieurs instances deFileSystemSyncAccessHandle
tant qu'elles sont toutes en mode lecture/écriture non sécurisé.
Le comportement actuel est conservé en conservant l'option "readwrite"
par défaut, 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, l'option "read-only"
doit être utilisée. Enfin, la dernière option "readwrite-unsafe"
permet d'utiliser plusieurs instances, ainsi que les opérations de lecture et d'écriture. Dans ce cas, les écritures peuvent être rapides 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'});
Écrivain exclusif pour FileSystemWritableFileStream
Contrairement à FileSystemSyncAccessHandle
, vous pouvez désormais créer plusieurs instances de FileSystemWritableFileStream
par entrée de fichier. Il manque une option pour un auteur exclusif. Chrome 121 ajoute un paramètre mode
facultatif à la méthode FileSystemAccessFileHandle.createWritable()
, qui a les valeurs suivantes:
- Mode
"exclusive"
: un seul écrivain peut exister à la fois. - Mode
"siloed"
: il s'agit du mode par défaut actuel. Chaque rédacteur créé aura 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 les lecteurs et les rédacteurs multiples pour FileSystemSyncAccessHandle
et le rédacteur exclusif pour FileSystemWritableFileStream
, sont compatibles à partir de Chrome 121.
Saisissez l'essai de développement
Pour participer à l'essai en développement afin de tester la fonctionnalité avant le lancement de Chrome 121, définissez l'indicateur #file-system-access-locking-scheme
dans chrome://flags
sur Activé. Vous pourrez ainsi tester la fonctionnalité en local sur votre ordinateur.
Remerciements
Cet article a été relu par Daseul Lee, Nathan Memmott et Rachel Andrew.