Peningkatan API untuk bekerja dengan file di browser

Dukungan untuk beberapa pembaca dan penulis untuk FileSystemSyncAccessHandle dan penulis eksklusif untuk FileSystemWritableFileStream.

Beberapa pembaca dan penulis untuk FileSystemSyncAccessHandle

Sistem file pribadi asal (terkadang juga disebut sebagai sistem file bucket) memungkinkan developer mengakses file yang dioptimalkan untuk performa pembacaan dan penulisan maksimum. Hal ini terjadi melalui objek FileSystemSyncAccessHandle. Saat ini, mencoba membuka beberapa objek FileSystemSyncAccessHandle untuk entri file yang sama akan gagal dengan NoModificationAllowedError. Karena ada kasus penggunaan yang membatasi batasan ini, Chrome 121 memperkenalkan parameter mode baru untuk metode FileSystemFileHandle.createSyncAccessHandle() dengan nilai string yang diizinkan berikut:

  • "readwrite": Ini adalah setelan default saat ini. Setelah terbuka, semua metode di FileSystemSyncAccessHandle diizinkan. Hanya satu instance FileSystemSyncAccessHandle yang diizinkan.
  • "read-only" : Mengizinkan beberapa pembaca. Setelah terbuka, hanya metode seperti baca di FileSystemSyncAccessHandle yang diizinkan: read(), getSize(), dan close(). Beberapa instance FileSystemSyncAccessHandle dapat dibuat selama semuanya dalam mode hanya baca.
  • "readwrite-unsafe": Mengizinkan beberapa penulis. Setelah terbuka, semua metode di FileSystemSyncAccessHandle diizinkan. Beberapa instance FileSystemSyncAccessHandle dapat dibuat selama semuanya berada dalam mode readwrite-unsafe.

Perilaku saat ini dipertahankan dengan mempertahankan opsi "readwrite" sebagai default, yang hanya mengizinkan satu instance dalam satu waktu. Jika situs perlu membuka beberapa objek FileSystemSyncAccessHandle, tetapi tidak perlu melakukan operasi tulis, opsi "read-only" harus digunakan. Terakhir, opsi terakhir "readwrite-unsafe" memungkinkan beberapa instance serta baca dan tulis. Dalam hal ini, operasi tulis dapat menjadi cepat jika dilakukan dari beberapa tab, dan situs harus menyediakan skema penguncian sendiri.

const handle1 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});
// This will succeed:
const handle2 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});

Penulis eksklusif untuk FileSystemWritableFileStream

Tidak seperti FileSystemSyncAccessHandle, beberapa instance FileSystemWritableFileStream dapat dibuat per entri file saat ini. Yang hilang adalah cara untuk memberikan opsi bagi penulis eksklusif. Chrome 121 menambahkan parameter mode opsional ke metode FileSystemAccessFileHandle.createWritable() yang memiliki nilai berikut:

  • Mode "exclusive": Hanya satu penulis yang dapat ada dalam satu waktu.
  • Mode "siloed": Ini adalah setelan default saat ini. Setiap penulis yang dibuat akan memiliki file swap-nya sendiri.
const writable1 = await handle.createWritable({mode: 'exclusive'});
// This will fail:
const writable2 = await handle.createWritable();

Dukungan browser

Kedua fitur tersebut, beberapa pembaca dan penulis untuk FileSystemSyncAccessHandle dan penulis eksklusif untuk FileSystemWritableFileStream, didukung mulai Chrome 121.

Memulai uji coba developer

Untuk memasuki uji coba developer guna menguji fitur sebelum Chrome 121 diluncurkan, tetapkan tanda #file-system-access-locking-scheme di chrome://flags ke Enabled. Tindakan ini akan memungkinkan Anda menguji fitur secara lokal di komputer.

Ucapan terima kasih

Artikel ini ditinjau oleh Daseul Lee, Nathan Memmott, dan Rachel Andrew.