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. 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 Fä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 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:
"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
Beide Funktionen, mehrere Leser und Schreiber für FileSystemSyncAccessHandle
und 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.