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 d'utiliser 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
, à condition qu'elles soient toutes en mode lecture seule."readwrite-unsafe"
: permet plusieurs écrivains. Une fois ouvert, toutes les méthodes surFileSystemSyncAccessHandle
sont autorisées. Plusieurs instances deFileSystemSyncAccessHandle
peuvent être créées, à condition qu'elles soient toutes en mode readwrite-unsafe.
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 qu'il 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 rédacteur 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 écriture créée 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.
Participer à l'essai développeur
Pour accéder à la version d'évaluation développeur et tester la fonctionnalité avant le lancement de Chrome 121, définissez l'indicateur #file-system-access-locking-scheme
dans chrome://flags
sur Enabled (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.