การรองรับผู้อ่านและผู้เขียนหลายรายสําหรับ 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
หลายรายการต่อรายการไฟล์ได้ในปัจจุบัน ซึ่งแตกต่างจาก FileSystemSyncAccessHandle
สิ่งที่ขาดหายไปคือตัวเลือกสำหรับนักแต่งเพลงคนเดียว Chrome 121 เพิ่มพารามิเตอร์ mode
ที่ไม่บังคับลงในเมธอด FileSystemAccessFileHandle.createWritable()
ซึ่งมีค่าต่อไปนี้
- โหมด
"exclusive"
: มีผู้เขียนได้เพียงคนเดียวในแต่ละครั้ง - โหมด
"siloed"
: โหมดนี้เป็นค่าเริ่มต้นในปัจจุบัน เครื่องเขียนแต่ละรายการที่สร้างจะมีไฟล์สลับของตัวเอง
const writable1 = await handle.createWritable({mode: 'exclusive'});
// This will fail:
const writable2 = await handle.createWritable();
การสนับสนุนเบราว์เซอร์
Chrome เวอร์ชัน 121 รองรับทั้ง 2 ฟีเจอร์ ได้แก่ โปรแกรมอ่านและโปรแกรมเขียนหลายรายการสำหรับ FileSystemSyncAccessHandle
และโปรแกรมเขียนสำหรับ FileSystemWritableFileStream
โดยเฉพาะ
เข้าสู่ช่วงทดลองใช้สำหรับนักพัฒนาแอป
หากต้องการเข้าร่วมการทดลองใช้สำหรับนักพัฒนาซอฟต์แวร์เพื่อทดสอบฟีเจอร์นี้ก่อนการเปิดตัว Chrome 121 ให้ตั้งค่า Flag #file-system-access-locking-scheme
ใน chrome://flags
เป็นเปิดใช้ ซึ่งจะช่วยให้คุณทดสอบฟีเจอร์นี้ในเครื่องได้
ขอขอบคุณ
บทความนี้ได้รับการตรวจสอบโดย Daseul Lee, Nathan Memmott และ Rachel Andrew