Unterstützung für mehrere Leser und Autoren für FileSystemSyncAccessHandle und exklusiven Autor für FileSystemWritableFileStream.
Mehrere Leser und Schreiber 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 fehl, mehrere FileSystemSyncAccessHandle
-Objekte für denselben Dateieintrag zu öffnen. Es wird eine NoModificationAllowedError
ausgegeben. Da diese Einschränkung in einigen Anwendungsfällen einschränkend ist, wird in Chrome 121 ein neuer mode
-Parameter für die FileSystemFileHandle.createSyncAccessHandle()
-Methode mit den folgenden zulässigen Stringwerten eingeführt:
"readwrite"
: Das ist der aktuelle Standard. Nach dem Öffnen sind alle Methoden aufFileSystemSyncAccessHandle
zulässig. Es ist nur eine Instanz vonFileSystemSyncAccessHandle
zulässig."read-only"
: Ermöglicht mehrere Leser. Nach dem Öffnen sind nur leseähnliche Methoden aufFileSystemSyncAccessHandle
zulässig:read()
,getSize()
undclose()
. Es können mehrere Instanzen vonFileSystemSyncAccessHandle
erstellt werden, solange sich alle im Lesemodus befinden."readwrite-unsafe"
: Ermöglicht mehrere Schreibvorgänge. Nach dem Öffnen sind alle Methoden aufFileSystemSyncAccessHandle
zulässig. Es können mehrere Instanzen vonFileSystemSyncAccessHandle
erstellt werden, solange sich alle im schreib-/leseunsicheren Modus befinden.
Das aktuelle Verhalten bleibt erhalten, da die Option "readwrite"
als Standard beibehalten wird. Damit ist jeweils nur eine Instanz zulässig. Wenn auf einer Website mehrere FileSystemSyncAccessHandle
-Objekte geöffnet werden müssen, aber keine Schreibvorgänge ausgeführt werden müssen, sollte die Option "read-only"
verwendet werden. Die letzte Option "readwrite-unsafe"
ermöglicht mehrere Instanzen sowie Lese- und Schreibzugriff. In diesem Fall können Schreibvorgänge, die über mehrere Tabs ausgeführt werden, zu Datenkonflikten führen. Websites müssten dann ein eigenes Sperrschema bereitstellen.
const handle1 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});
// This will succeed:
const handle2 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});
Exklusiver Autor für FileSystemWritableFileStream
Im Gegensatz zu FileSystemSyncAccessHandle
können heute pro Dateieintrag mehrere Instanzen von FileSystemWritableFileStream
erstellt werden. Es fehlt eine Option für einen exklusiven Autor. In Chrome 121 wird der Methode FileSystemAccessFileHandle.createWritable()
ein optionaler mode
-Parameter hinzugefügt, der die folgenden Werte hat:
- Modus
"exclusive"
: Es kann immer nur ein Autor vorhanden sein. "siloed"
-Modus: Dies 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
Sowohl mehrere Leser und Schreiber für FileSystemSyncAccessHandle
als auch der exklusive Schreiber für FileSystemWritableFileStream
werden ab Chrome 121 unterstützt.
Testzeitraum für Entwickler starten
Wenn Sie die Funktion vor der Veröffentlichung von Chrome 121 testen möchten, setzen Sie 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.