แนวทางปฏิบัติแนะนำสำหรับการนำเข้าไฟล์ที่เข้ารหัสฝั่งไคลเอ็นต์จำนวนมาก

คู่มือนี้จะกล่าวถึงแนวทางปฏิบัติแนะนำในการสร้างเครื่องมือที่กำหนดเองเพื่อนำเข้าไฟล์ที่เข้ารหัสฝั่งไคลเอ็นต์ (CSE) แบบเป็นกลุ่มโดยใช้ Drive API

พิจารณาใช้ไดรฟ์สำหรับเดสก์ท็อปสำหรับการย้ายข้อมูลแบบบริการตนเอง

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

ก่อนเริ่มต้น

คุณต้องเข้าใจวิธีจัดการไฟล์ที่เข้ารหัสฝั่งไคลเอ็นต์ไฟล์เดียว โปรดดูจัดการไฟล์ CSE แต่ละไฟล์เพื่อเรียนรู้ ขั้นตอนพื้นฐานสำหรับการเข้ารหัส การอัปโหลด/ดาวน์โหลด และการถอดรหัส ซึ่งรวมถึง การสร้างโทเค็นและการโต้ตอบกับบริการรายการควบคุมการเข้าถึงคีย์ (KACLS)

ตรวจสอบสิทธิ์โดยใช้บัญชีบริการ

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

สร้างโครงสร้างไดเรกทอรีใหม่

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

  1. สร้างโฟลเดอร์ในไดรฟ์ที่สอดคล้องกันสำหรับแต่ละไดเรกทอรีต้นทาง
  2. เข้ารหัสและอัปโหลดไฟล์ของไดเรกทอรีไปยังโฟลเดอร์ไดรฟ์ที่สร้างขึ้น
  3. ทำกระบวนการนี้ซ้ำสำหรับไดเรกทอรีย่อย

อัปโหลดไฟล์ไปยังตำแหน่งที่ถูกต้อง

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

การป้องกันรายการที่ซ้ำ

ไดรฟ์อนุญาตให้ไฟล์หลายไฟล์ในโฟลเดอร์เดียวกันใช้ชื่อไฟล์เดียวกัน ได้ สร้างรหัสสำหรับไฟล์ก่อนอัปโหลด คุณใช้เมธอด Drive API files.generateIds เพื่อดำเนินการนี้ได้

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

ขอโทเค็น CSE ก่อนการอัปโหลดแต่ละครั้ง

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

ใช้การอัปโหลดต่อได้สำหรับไฟล์ขนาดใหญ่

ใช้ resumable uploads ของ Drive API เพื่อย้ายข้อมูลไฟล์ขนาดใหญ่ การอัปโหลดต่อได้ช่วยให้ผู้นำเข้าลองอัปโหลด Chunk ที่ล้มเหลวอีกครั้งได้ในระหว่างที่เครือข่ายหยุดชะงัก แทนที่จะต้องเริ่ม การอัปโหลดไฟล์ทั้งหมดใหม่

กู้คืนสิทธิ์การแชร์

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

จัดการการหมดอายุของโทเค็น

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

ตรวจสอบไฟล์ที่นำเข้าอย่างละเอียด

ทำการตรวจสอบอย่างละเอียดหลังจากการนำเข้าแบบกลุ่ม Google จะไม่สามารถถอดรหัสและตรวจสอบ ไฟล์ของคุณที่ฝั่งเซิร์ฟเวอร์ได้ ส่วนตรวจสอบไฟล์ที่นำเข้า จะอธิบายวิธีการตรวจสอบไฟล์แต่ละไฟล์หลายวิธี

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

ทำความเข้าใจขีดจำกัดและโควต้า

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