จัดการโฟลเดอร์ที่มีการเข้าถึงแบบจำกัดและแบบขยาย

ผู้ใช้เป็นเจ้าของโฟลเดอร์ในไดรฟ์ของฉัน โฟลเดอร์อาจมีผู้ใช้หลายรายที่มีสิทธิ์เข้าถึงไฟล์ต่างๆ โมเดลการเข้าถึงแบบจำกัดนี้หมายความว่าผู้ใช้แต่ละรายอาจเห็นรายการต่างๆ ในโฟลเดอร์เดียวกัน ผู้ใช้ที่มีสิทธิ์เข้าถึงโฟลเดอร์หลักในไดรฟ์ของฉัน แต่ไม่มีสิทธิ์เข้าถึงรายการในโฟลเดอร์นั้นจะมี "สิทธิ์เข้าถึงแบบจำกัด" ซึ่งทำให้เกิดสถานการณ์ที่ยากต่อการทราบว่าใครมีสิทธิ์เข้าถึงในลำดับชั้น

ในทางกลับกัน ไดรฟ์ที่แชร์จะเป็นเจ้าของไฟล์ในไดรฟ์ที่แชร์ ไดรฟ์ที่แชร์มีโมเดลแบบขยายเพื่อให้ผู้ใช้ทุกคนมีรายการเดียวกันในโฟลเดอร์เดียวกัน

การเปิดตัว โฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัดจะจำลองโมเดลการเข้าถึงแบบขยายจากไดรฟ์ที่แชร์ไปยังไดรฟ์ของฉัน การเปลี่ยนแปลงนี้ทำให้โฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัดเป็นข้อยกเว้นเพียงอย่างเดียวที่อนุญาตให้จำกัดสิทธิ์เข้าถึงโฟลเดอร์ย่อยที่เฉพาะเจาะจงได้ทั้งในไดรฟ์ของฉันและไดรฟ์ที่แชร์

คู่มือนี้จะอธิบายวิธีจัดการโฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัดและสิทธิ์เข้าถึงแบบขยายใน Google ไดรฟ์

เกี่ยวกับโฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัด

จำกัดโฟลเดอร์สำหรับผู้ใช้ที่เฉพาะเจาะจง

โฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัดช่วยให้คุณจำกัดโฟลเดอร์สำหรับผู้ใช้ที่เฉพาะเจาะจงได้ เฉพาะผู้ใช้ที่คุณเพิ่มลงในสิทธิ์ของโฟลเดอร์โดยตรงเท่านั้นที่เปิดโฟลเดอร์และเข้าถึงเนื้อหาในโฟลเดอร์ได้ ผู้ใช้ที่มีสิทธิ์เข้าถึงโฟลเดอร์ในไดรฟ์ของฉันหรือโฟลเดอร์ในไดรฟ์ที่แชร์ที่รับค่ามาจากโฟลเดอร์หลักจะเห็นโฟลเดอร์ที่จำกัดในไดรฟ์ แต่จะเปิดโฟลเดอร์ไม่ได้ ฟีเจอร์นี้ช่วยให้ลักษณะการแชร์รายการในไดรฟ์ของฉันและไดรฟ์ที่แชร์สอดคล้องกันมากขึ้น โดยช่วยให้คุณจัดระเบียบโฟลเดอร์ที่มีเนื้อหาที่ละเอียดอ่อนควบคู่ไปกับเนื้อหาที่แชร์ในวงกว้างมากขึ้น

โฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัดจะใช้ได้ทั้งในไดรฟ์ของฉันและไดรฟ์ที่แชร์ บทบาท owner ในไดรฟ์ของฉันและบทบาท organizer ในไดรฟ์ที่แชร์จะเข้าถึงโฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัดได้ทุกเมื่อ ไม่จำเป็นต้องมีสิทธิ์พิเศษในการแก้ไขรายชื่อผู้ใช้โฟลเดอร์ บทบาทที่แชร์โฟลเดอร์ได้จะอัปเดตรายชื่อสมาชิกได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับบทบาทและ สิทธิ์ได้ที่บทบาทและสิทธิ์และภาพรวมของไดรฟ์ ที่แชร์

โปรดทราบว่าแม้ว่าโฟลเดอร์จะเป็นไฟล์ประเภทหนึ่ง แต่การเข้าถึงแบบจำกัดจะใช้ไม่ได้กับไฟล์

ตั้งค่าสิทธิ์เข้าถึงแบบจำกัดในโฟลเดอร์

แม้ว่าผู้ใช้ที่มีสิทธิ์เข้าถึงโฟลเดอร์โดยตรงจะเข้าถึงโฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัด ได้ แต่จะมีเพียงบทบาท owner ในไดรฟ์ของฉันและบทบาท organizer ในไดรฟ์ที่แชร์เท่านั้นที่เปิดหรือปิดใช้สิทธิ์เข้าถึงแบบจำกัดได้

นอกจากนี้ หากผู้ใช้ที่มีบทบาท writer ในไดรฟ์ของฉันมี ช่องบูลีน writersCanShare ในทรัพยากร files ตั้งค่าเป็น true ผู้ใช้ดังกล่าวจะเปิดหรือปิดฟีเจอร์นี้ได้เช่นกัน

หากต้องการจำกัดสิทธิ์เข้าถึงโฟลเดอร์ ให้ตั้งค่าช่องบูลีน inheritedPermissionsDisabled ในทรัพยากร files เป็น true เมื่อตั้งค่าเป็น true จะมีเพียงบทบาท owner บทบาท organizer และผู้ใช้ที่มีสิทธิ์เข้าถึงโฟลเดอร์โดยตรงเท่านั้นที่เข้าถึงได้

หากต้องการเปิดสิทธิ์ที่รับค่ามาอีกครั้ง ให้ตั้งค่า inheritedPermissionsDisabled เป็น false

ตรวจสอบสิทธิ์ในการจำกัดสิทธิ์เข้าถึงโฟลเดอร์

หากต้องการตรวจสอบว่าคุณจำกัดสิทธิ์เข้าถึงโฟลเดอร์ได้หรือไม่ ให้ตรวจสอบค่าบูลีน ของ capabilities.canDisableInheritedPermissions และ capabilities.canEnableInheritedPermissions ในทรัพยากร files การตั้งค่าเหล่านี้จะยืนยันว่าคุณมีสิทธิ์จำกัดสิทธิ์เข้าถึงโฟลเดอร์ผ่านช่อง inheritedPermissionsDisabled หรือไม่

ดูข้อมูลเพิ่มเติมเกี่ยวกับ capabilities ได้ที่ ทำความเข้าใจความสามารถของไฟล์

แสดงรายการโฟลเดอร์ย่อยของโฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัด

หากต้องการตรวจสอบว่าคุณแสดงรายการโฟลเดอร์ย่อยของโฟลเดอร์ได้หรือไม่ ให้ใช้ช่องบูลีน capabilities.canListChildren

ค่าที่แสดงจะเป็น false เสมอเมื่อรายการไม่ใช่โฟลเดอร์ หรือหากระบบนำสิทธิ์เข้าถึงเนื้อหาของโฟลเดอร์ของผู้ขอออกโดยตั้งค่า inheritedPermissionsDisabled เป็น false

หากระบบนำสิทธิ์เข้าถึงเนื้อหาของโฟลเดอร์ออก คุณจะยังเข้าถึง ข้อมูลเมตาของโฟลเดอร์ได้ด้วยเมธอด files.get() และ files.list() หากต้องการยืนยันว่าสิทธิ์เข้าถึงถูก จำกัด ให้ตรวจสอบเนื้อหาการตอบกลับเพื่อดูว่ารายการเป็นโฟลเดอร์ที่มี MIME Type application/vnd.google-apps.folder และช่อง capabilities.canListChildren ตั้งค่าเป็น "เท็จ" หรือไม่ หากคุณพยายามแสดงรายการโฟลเดอร์ย่อยของโฟลเดอร์ดังกล่าว ผลลัพธ์จะเป็นรายการว่างเปล่าเสมอ

เข้าถึงข้อมูลเมตาของโฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัด

โฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัดช่วยให้คุณดูข้อมูลเมตา ของโฟลเดอร์ได้แม้ว่าคุณจะไม่มีสิทธิ์เข้าถึงเนื้อหาของโฟลเดอร์ก็ตาม

เมื่อใช้ทรัพยากร permissions เพื่อ กำหนดสิทธิ์เข้าถึงของผู้ใช้ ทั้งโฟลเดอร์ในไดรฟ์ของฉันและโฟลเดอร์ในไดรฟ์ที่แชร์ ซึ่งให้สิทธิ์เข้าถึงข้อมูลเมตาเท่านั้นจะมีค่าต่อไปนี้ใน เนื้อหาการตอบกลับ: inheritedPermissionsDisabled=true และ view=metadata ระบบจะตั้งค่าบทบาท เป็น reader เสมอ ระบบจะป้อนข้อมูลในช่อง view เฉพาะสิทธิ์ที่อยู่ใน view เท่านั้น ดูข้อมูลเพิ่มเติมได้ที่ มุมมอง

รายการทั้งหมดในช่อง permissionDetails จะมีช่อง inherited ตั้งค่าเป็น true เพื่อระบุว่าสิทธิ์ดังกล่าวรับค่ามาจากโฟลเดอร์หลัก และระบบไม่ได้ให้สิทธิ์เข้าถึงเนื้อหาของโฟลเดอร์โดยตรง

หากต้องการให้สิทธิ์เข้าถึงทั้งเนื้อหาและข้อมูลเมตาของโฟลเดอร์ ให้ตั้งค่าช่อง inheritedPermissionsDisabled เป็น false หรืออัปเดตบทบาทเป็น reader หรือสูงกว่า

สุดท้ายนี้ หากระบบจำกัดสิทธิ์ครั้งแรกโดยปิดการรับค่าสิทธิ์ในโฟลเดอร์ (inheritedPermissionsDisabled=true) แล้วเพิ่มสิทธิ์กลับลงในโฟลเดอร์โดยตรง ค่าในเนื้อหาการตอบกลับจะกลายเป็น inheritedPermissionsDisabled=true โดยที่ช่อง view ไม่ได้ตั้งค่า หากโฟลเดอร์อยู่ในไดรฟ์ที่แชร์ รายการ permissionDetails จะมีรายการที่มีช่อง inherited ตั้งค่าเป็น false เพื่อระบุว่าสิทธิ์ดังกล่าวไม่ได้รับค่ามาจากโฟลเดอร์หลัก สิทธิ์นี้จะให้สิทธิ์เข้าถึงทั้งเนื้อหาและข้อมูลเมตาของโฟลเดอร์เช่นเดียวกับสิทธิ์อื่นๆ

ลบโฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัด

คุณสามารถลบโฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัดได้โดยใช้เมธอด files.delete() ในทรัพยากร files

ในไดรฟ์ของฉัน เฉพาะเจ้าของรายการเท่านั้นที่ลบลำดับชั้นของโฟลเดอร์ได้ หากผู้ใช้ลบลำดับชั้นที่มีโฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัดและเป็นของผู้อื่น ระบบจะย้ายโฟลเดอร์เหล่านี้ไปยัง "ไดรฟ์ของฉัน" ของเจ้าของ

หากผู้ใช้มีบทบาท owner ระบบจะลบลำดับชั้นทั้งหมด

ในไดรฟ์ที่แชร์ บทบาท organizer จะลบลำดับชั้นได้แม้ว่าจะมีโฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัดก็ตาม หากบทบาท fileOrganizer ลบลำดับชั้นที่มีโฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัด ผลลัพธ์จะขึ้นอยู่กับว่าผู้ใช้ดังกล่าวถูกเพิ่มกลับเป็น fileOrganizer ในโฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัดหรือไม่ หากถูกเพิ่มกลับ ระบบจะลบลำดับชั้นทั้งหมด หากไม่ถูกเพิ่มกลับ ระบบจะย้ายโฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัดไปยังโฟลเดอร์รูทของไดรฟ์ที่แชร์

เกี่ยวกับการเข้าถึงแบบขยาย

การเปิดตัวโฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัดจะขยายโมเดลการเข้าถึงแบบขยายจากไดรฟ์ที่แชร์ไปยังไดรฟ์ของฉัน เมื่อเปิดตัวโมเดลการเข้าถึงแล้ว การมีสิทธิ์เข้าถึงโฟลเดอร์หมายความว่าคุณจะมีสิทธิ์เข้าถึงทุกอย่างในลำดับชั้นของโฟลเดอร์นั้นอย่างน้อยในระดับเดียวกัน โฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัดเป็นข้อยกเว้นเพียงอย่างเดียวที่อนุญาตให้จำกัดสิทธิ์เข้าถึงโฟลเดอร์ย่อยที่เฉพาะเจาะจงได้ทั้งในไดรฟ์ของฉันและไดรฟ์ที่แชร์ ซึ่งหมายความว่าคุณจะนำสิทธิ์เข้าถึงที่รับค่ามาจากโฟลเดอร์หลักออกไม่ได้อีกต่อไป เว้นแต่โฟลเดอร์ของคุณจะมีสิทธิ์เข้าถึงแบบจำกัด หากทำเช่นนั้น Drive API จะแสดงการตอบกลับข้อผิดพลาด หากต้องการกำหนดการควบคุมการเข้าถึงที่ละเอียดยิ่งขึ้นภายในลำดับชั้น คุณสามารถตั้งค่าสิทธิ์เข้าถึงแบบจำกัดในโฟลเดอร์ได้

ปรับให้เข้ากับการเข้าถึงแบบขยาย

เราได้ปรับปรุง Google ไดรฟ์ API หลายอย่างเพื่อให้การปรับตัวเข้ากับการเข้าถึงแบบขยายของนักพัฒนาแอปง่ายขึ้น ดังนี้

  1. ตอนนี้ระบบจะป้อนข้อมูลในช่อง permissionDetails[] ในทรัพยากร permissions สำหรับรายการในไดรฟ์ของฉัน ก่อนหน้านี้ ช่องดังกล่าวจะไม่ได้ตั้งค่าหรือจำลองจากช่อง teamDrivePermissionDetails เมื่อเหมาะสม ระบบจะป้อนข้อมูลเฉพาะช่อง permissionType และ inherited ในไดรฟ์ของฉัน

    ช่อง permissionDetails[].inherited จะระบุว่าสิทธิ์ดังกล่าวรับค่ามาจากโฟลเดอร์หลักของรายการหรือไม่ ช่องนี้ช่วยให้คุณตรวจพบว่าบทบาทบางอย่าง (เช่น reader) รับค่ามาจากโฟลเดอร์หลักหรือไม่ และมีการให้บทบาทที่สูงกว่า (เช่น writer) ในรายการโดยตรงหรือไม่

    เมื่อดูสิทธิ์ของรายการ ช่อง permissionDetails[] อาจมีหลายรายการ หากมี ระบบจะมี 1 รายการสำหรับสิทธิ์ในรายการโดยตรงสำหรับขอบเขตนั้นๆ แล้วตามด้วยรายการสำหรับสิทธิ์ของสมาชิกหรือสิทธิ์ที่รับค่ามาในรายการ

  2. นักพัฒนาแอปสามารถเลือกใช้ลักษณะการทำงานของ API การเข้าถึงแบบขยายในไดรฟ์ของฉันก่อนที่จะมีการบังคับใช้ในอนาคต คุณสามารถตั้งค่าพารามิเตอร์คำขอ enforceExpansiveAccess เป็น true เพื่อให้การเปลี่ยนแปลงการเข้าถึงแบบขยายในอนาคตไม่ส่งผลต่อแอปของคุณ

    การเลือกใช้ตอนนี้หมายความว่า API จะทำงานเหมือนกันสำหรับรายการในไดรฟ์ของฉันและรายการในไดรฟ์ที่แชร์ เช่น การพยายามจำกัดสิทธิ์เข้าถึงให้ต่ำกว่าบทบาทที่รับค่ามาจะล้มเหลวเมื่อ เรียก permissions.update() ในทำนองเดียวกัน การเรียก permissions.delete() จะล้มเหลวหากสิทธิ์ดังกล่าวรับค่ามาจากโฟลเดอร์หลัก

ตรวจหาและป้องกันสิทธิ์เข้าถึงแบบจำกัด

แอปของคุณอาจสร้างสิทธิ์เข้าถึงแบบจำกัด (ที่ผู้ใช้มีสิทธิ์เข้าถึงโฟลเดอร์หลักในไดรฟ์ของฉัน แต่ไม่มีสิทธิ์เข้าถึงไฟล์ในโฟลเดอร์นั้น) ในโฟลเดอร์ในไดรฟ์ของฉันเมื่อใช้เมธอด permissions.update() หรือ permissions.delete()

เมื่อใช้เมธอดเหล่านี้ คุณสามารถตรวจสอบช่องในทรัพยากร permissions เพื่อดูว่าคำขอใดอาจสร้างสิทธิ์เข้าถึงแบบจำกัด และหลีกเลี่ยงการส่งคำขอดังกล่าว หากต้องการตรวจหาสถานการณ์นี้ ให้ใช้ช่อง enforceExpansiveAccess ในคำขอ

นอกจากนี้ หากแอปของคุณสร้างสิทธิ์เข้าถึงแบบจำกัดในโฟลเดอร์แล้ว คุณสามารถทำตามขั้นตอนต่อไปนี้

  1. สำรวจลำดับชั้นของโฟลเดอร์เพื่อนำสิทธิ์เข้าถึงแบบจำกัดออก และตั้งค่าสิทธิ์เข้าถึงโฟลเดอร์แบบจำกัดแทน คุณควร

  2. หากรายการที่คุณพยายามเลิกแชร์เป็นไฟล์ คุณสามารถสร้างโฟลเดอร์ระดับกลาง ตั้งค่าสิทธิ์เข้าถึงแบบจำกัดในโฟลเดอร์นั้น แล้วย้ายไฟล์ไปไว้ในโฟลเดอร์ใหม่

  3. หากไม่ต้องการใช้โฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัด แต่ต้องนำสิทธิ์เข้าถึงบางอย่างออก คุณสามารถย้ายไฟล์ไปยังโฟลเดอร์ส่วนตัว (เช่น โฟลเดอร์รูทในไดรฟ์ของฉัน) จากนั้น สร้าง ทางลัดไปยังตำแหน่งเดิมของรายการเพื่อให้ ผู้ใช้ยังคงใช้รายการนั้นได้