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

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

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

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

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

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

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

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

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

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

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

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

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

การป้องกันไฟล์ซ้ำ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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