Unterstützung für mehrere Leser und Autoren für FileSystemSyncAccessHandle und exklusiven Autor für FileSystemWritableFileStream.
Mehrere Leser und Schreiber für FileSystemSyncAccessHandle
Über das private Dateisystem des Ursprungs (manchmal auch als Bucket-Dateisystem bezeichnet) können Entwickler auf Dateien zugreifen, die für eine maximale Lese- und Schreibleistung optimiert sind. Dies geschieht über FileSystemSyncAccessHandle
-Objekte. Wenn Sie derzeit versuchen, mehrere FileSystemSyncAccessHandle
-Objekte für denselben Dateieintrag zu öffnen, schlägt dies mit einer NoModificationAllowedError
fehl. 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 Schreibvorgang für FileSystemWritableFileStream
Im Gegensatz zu FileSystemSyncAccessHandle
können heute mehrere Instanzen von FileSystemWritableFileStream
pro Dateieintrag erstellt werden. Es fehlt eine Möglichkeit, eine Option für einen exklusiven Autor anzugeben. In Chrome 121 wird der Methode FileSystemAccessFileHandle.createWritable()
ein optionaler mode
-Parameter hinzugefügt, der die folgenden Werte hat:
"exclusive"
-Modus: Es kann jeweils nur einen Schreiber geben."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
Sowohl mehrere Leser und Schreiber für FileSystemSyncAccessHandle
als auch ein exklusiver 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.