รองรับโปรแกรมอ่านและผู้เขียนแบบหลายรายสำหรับ FileSystemSyncAccessHandle และผู้เขียนแบบเฉพาะตัวสำหรับ FileSystemWritableFileStream
ผู้อ่านและผู้เขียนหลายรายสำหรับ FileSystemSyncAccessHandle
ระบบไฟล์ส่วนตัวดั้งเดิม (บางครั้งเรียกว่าระบบไฟล์ของที่เก็บข้อมูล) ช่วยให้นักพัฒนาซอฟต์แวร์เข้าถึงไฟล์ที่ได้รับการเพิ่มประสิทธิภาพเพื่อการอ่านและการเขียนสูงสุดได้ กรณีนี้เกิดขึ้นผ่านออบเจ็กต์ FileSystemSyncAccessHandle
ปัจจุบันลองเปิดออบเจ็กต์ FileSystemSyncAccessHandle
หลายรายการสำหรับรายการไฟล์เดียวกันแต่ไม่สำเร็จด้วย NoModificationAllowedError
เนื่องจากมีกรณีการใช้งานที่ข้อจำกัดนี้ถูกจำกัดอยู่ Chrome 121 จึงแนะนำพารามิเตอร์ mode
ใหม่สำหรับเมธอด FileSystemFileHandle.createSyncAccessHandle()
ด้วยค่าสตริงที่อนุญาตต่อไปนี้
"readwrite"
: คือค่าเริ่มต้นปัจจุบัน เมื่อเปิดแล้ว วิธีการต่างๆ ในFileSystemSyncAccessHandle
จะได้รับอนุญาต อนุญาตอินสแตนซ์ของFileSystemSyncAccessHandle
เพียง 1 รายการเท่านั้น"read-only"
: รองรับผู้อ่านหลายคน เมื่อเปิดแล้ว อนุญาตให้ใช้เฉพาะเมธอดแบบอ่านในFileSystemSyncAccessHandle
เท่านั้น:read()
,getSize()
และclose()
คุณสร้างอินสแตนซ์FileSystemSyncAccessHandle
ได้หลายรายการตราบใดที่อินสแตนซ์ทั้งหมดอยู่ในโหมดอ่านอย่างเดียว"readwrite-unsafe"
: อนุญาตผู้เขียนหลายคน เมื่อเปิดแล้ว วิธีการต่างๆ ในFileSystemSyncAccessHandle
จะได้รับอนุญาต คุณสร้างอินสแตนซ์FileSystemSyncAccessHandle
ได้หลายรายการตราบใดที่อินสแตนซ์ทั้งหมดอยู่ในโหมดอ่านเขียนที่ไม่ปลอดภัย
การทำงานในปัจจุบันจะยังคงอยู่โดยเก็บตัวเลือก "readwrite"
ไว้เป็นค่าเริ่มต้น ซึ่งอนุญาตครั้งละ 1 อินสแตนซ์เท่านั้น หากเว็บไซต์ต้องการเปิดออบเจ็กต์ FileSystemSyncAccessHandle
หลายรายการ แต่ไม่จำเป็นต้องเขียน คุณควรใช้ตัวเลือก "read-only"
สุดท้าย ตัวเลือกสุดท้าย "readwrite-unsafe"
อนุญาตอินสแตนซ์ได้หลายรายการรวมทั้งการอ่านและเขียน ในกรณีนี้ การเขียนอาจเป็นแบบสำหรับผู้ใหญ่หากดำเนินการจากแท็บหลายแท็บ และเว็บไซต์จะต้องระบุรูปแบบการล็อกของตนเอง
const handle1 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});
// This will succeed:
const handle2 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});
ผู้เขียนเฉพาะสำหรับ FileSystemWritableFileStream
ปัจจุบัน FileSystemWritableFileStream
สามารถสร้างอินสแตนซ์ของ FileSystemWritableFileStream
ได้หลายอินสแตนซ์ต่อรายการไฟล์ ซึ่งต่างจาก FileSystemSyncAccessHandle
ข้อมูลที่ขาดหายไปคือวิธีให้ทางเลือกกับนักเขียนระดับเอ็กซ์คลูซีฟ Chrome 121 จะเพิ่มพารามิเตอร์ mode
(ไม่บังคับ) ลงในเมธอด FileSystemAccessFileHandle.createWritable()
ซึ่งมีค่าต่อไปนี้
- โหมด
"exclusive"
: มีผู้เขียนได้ครั้งละ 1 คนเท่านั้น - โหมด
"siloed"
: นี่คือโหมดเริ่มต้นปัจจุบัน ผู้เขียนบทที่สร้างขึ้นแต่ละคนจะมีไฟล์สลับของตัวเอง
const writable1 = await handle.createWritable({mode: 'exclusive'});
// This will fail:
const writable2 = await handle.createWritable();
การสนับสนุนเบราว์เซอร์
ตั้งแต่ Chrome 121 เป็นต้นไป รองรับทั้งฟีเจอร์ ผู้อ่านและผู้เขียนหลายคนสำหรับ FileSystemSyncAccessHandle
และผู้เขียนสำหรับ FileSystemWritableFileStream
โดยเฉพาะ
เข้าสู่การทดลองใช้เวอร์ชันพัฒนา
หากต้องการเข้าสู่การทดลองใช้สำหรับนักพัฒนาซอฟต์แวร์เพื่อทดสอบฟีเจอร์ก่อนที่ Chrome 121 จะเปิดตัว ให้ตั้งค่าแฟล็ก #file-system-access-locking-scheme
ใน chrome://flags
เป็นเปิดใช้ วิธีนี้ช่วยให้คุณทดสอบฟีเจอร์นี้ในเครื่องได้
กิตติกรรมประกาศ
บทความนี้ได้รับการตรวจสอบโดย Daseul Lee, Nathan Memmott และ Rachel Andrew