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

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

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

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

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

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

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

เมื่อใช้แหล่งข้อมูล 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 Drive API หลายอย่างเพื่อช่วยให้นักพัฒนาแอปปรับตัวให้เข้ากับการเข้าถึงแบบขยายได้ง่ายขึ้น ดังนี้

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

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

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

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

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

ตรวจหาและป้องกันการเข้าถึงที่ถูกจำกัด

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

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

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

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

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

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