Peningkatan API untuk bekerja dengan file di browser

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

Beberapa pembaca dan penulis untuk FileSystemSyncAccessHandle

Sistem file pribadi origin (terkadang juga disebut sebagai sistem file bucket) memungkinkan developer mengakses file yang dioptimalkan untuk performa membaca dan menulis yang maksimal. Hal ini terjadi melalui objek FileSystemSyncAccessHandle. Saat ini, upaya membuka beberapa objek FileSystemSyncAccessHandle untuk entri file yang sama gagal dengan NoModificationAllowedError. Karena ada kasus penggunaan dengan 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 akan diizinkan. Hanya satu instance FileSystemSyncAccessHandle yang diizinkan.
  • "read-only" : Memungkinkan beberapa pembaca. Setelah terbuka, hanya metode seperti baca di FileSystemSyncAccessHandle yang diizinkan: read(), getSize(), dan close(). Beberapa instance FileSystemSyncAccessHandle dapat dibuat selama semuanya berada dalam mode hanya baca.
  • "readwrite-unsafe": Memungkinkan beberapa penulis. Setelah terbuka, semua metode di FileSystemSyncAccessHandle akan diizinkan. Beberapa instance FileSystemSyncAccessHandle dapat dibuat selama semuanya berada dalam mode baca-tulis tidak aman.

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 penulisan, opsi "read-only" harus digunakan. Terakhir, opsi terakhir "readwrite-unsafe" memungkinkan beberapa instance serta baca dan tulis. Dalam hal ini, penulisan bisa jadi tidak pantas jika dilakukan dari banyak 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 sekarang. Yang hilang adalah cara untuk memberikan pilihan bagi seorang penulis eksklusif. Chrome 121 menambahkan parameter mode opsional ke metode FileSystemAccessFileHandle.createWritable() yang memiliki nilai berikut:

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

Dukungan browser

Fitur, beberapa pembaca dan penulis untuk FileSystemSyncAccessHandle dan penulis eksklusif untuk FileSystemWritableFileStream, didukung mulai Chrome 121.

Masuki uji coba developer

Untuk memasuki uji coba dev guna menguji fitur sebelum Chrome 121 diluncurkan, setel tanda #file-system-access-locking-scheme di chrome://flags ke Diaktifkan. Dengan begitu, Anda dapat menguji fitur tersebut secara lokal di komputer Anda.

Ucapan terima kasih

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