Unterstützung mehrerer Reader und Autoren für FileSystemSyncAccessHandle und exklusiver Writer für FileSystemWritableFileStream.
Mehrere Leser und Autoren für FileSystemSyncAccessHandle
Mit dem privaten Ursprungsdateisystem (manchmal auch als Bucket-Dateisystem bezeichnet) können Entwickler auf Dateien zugreifen, die für maximale Lese- und Schreibleistung optimiert sind. Dies geschieht über FileSystemSyncAccessHandle
-Objekte. Derzeit schlägt der Versuch, mehrere FileSystemSyncAccessHandle
-Objekte für denselben Dateieintrag zu öffnen, mit der Fehlermeldung NoModificationAllowedError
fehl. Da diese Einschränkung in bestimmten Anwendungsfällen begrenzt ist, wird in Chrome 121 ein neuer mode
-Parameter für die Methode FileSystemFileHandle.createSyncAccessHandle()
mit den folgenden zulässigen Stringwerten eingeführt:
"readwrite"
: Das ist die aktuelle Standardeinstellung. Nach dem Öffnen sind alle Methoden fürFileSystemSyncAccessHandle
zulässig. Es ist nur eine Instanz vonFileSystemSyncAccessHandle
zulässig."read-only"
: Ermöglicht mehrere Lesegeräte. Nach dem Öffnen sind nur noch schreibgeschützte Methoden fürFileSystemSyncAccessHandle
zulässig:read()
,getSize()
undclose()
. Es können mehrere Instanzen vonFileSystemSyncAccessHandle
erstellt werden, sofern sie sich alle im Lesemodus befinden."readwrite-unsafe"
: Mehrere Autoren sind zulässig. Nach dem Öffnen sind alle Methoden fürFileSystemSyncAccessHandle
zulässig. Es können mehrere Instanzen vonFileSystemSyncAccessHandle
erstellt werden, solange sie sich alle im nicht schreibgeschützten Modus befinden.
Das aktuelle Verhalten wird beibehalten, da die Option "readwrite"
als Standardeinstellung beibehalten wird, die jeweils nur eine Instanz zulässt. Wenn eine Website mehrere FileSystemSyncAccessHandle
-Objekte öffnen, aber keine Schreibvorgänge ausführen muss, sollte die Option "read-only"
verwendet werden. Schließlich ermöglicht die letzte Option "readwrite-unsafe"
mehrere Instanzen sowie Lese- und Schreibvorgänge. In diesem Fall können Schreibvorgänge nicht jugendfrei sein, wenn sie von mehreren Tabs aus durchgeführt werden, und Websites müssten ihr eigenes Sperrschema zur Verfügung stellen.
const handle1 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});
// This will succeed:
const handle2 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});
Exklusiver Writer für FileSystemWritableFileStream
Anders als bei FileSystemSyncAccessHandle
können derzeit mehrere Instanzen von FileSystemWritableFileStream
pro Dateieintrag erstellt werden. Was fehlt, ist eine Möglichkeit, eine Option für einen exklusiven Autor anzubieten. Chrome 121 fügt der Methode FileSystemAccessFileHandle.createWritable()
einen optionalen mode
-Parameter mit den folgenden Werten hinzu:
"exclusive"
-Modus: Es kann immer nur ein Autor vorhanden sein."siloed"
-Modus: Das ist die aktuelle Standardeinstellung. Jeder erstellte Writer hat eine eigene Auslagerungsdatei.
const writable1 = await handle.createWritable({mode: 'exclusive'});
// This will fail:
const writable2 = await handle.createWritable();
Unterstützte Browser
Seit Chrome 121 werden beide Funktionen unterstützt, also mehrere Leser und Autoren für FileSystemSyncAccessHandle
sowie exklusive Autoren für FileSystemWritableFileStream
.
Entwicklertest starten
Wenn du den Entwicklertest starten möchtest, um die Funktion vor der Einführung von Chrome 121 zu testen, setze das Flag #file-system-access-locking-scheme
in chrome://flags
auf Aktiviert. So können Sie die Funktion lokal auf Ihrem Computer testen.
Danksagungen
Dieser Artikel wurde von Daseul Lee, Nathan Memmott und Rachel Andrew geprüft.