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

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

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

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

คู่มือนี้จะอธิบายวิธีจัดการโฟลเดอร์ที่มีสิทธิ์เข้าถึงแบบจำกัดและสิทธิ์เข้าถึงแบบขยายใน 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

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

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

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

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