• google-cloud

ตั้งค่า Google Cloud Storage เป็นที่เก็บไฟล์ของ Logto

คู่มือปฏิบัติเพื่อตั้งค่า Google Cloud Storage เป็นที่เก็บไฟล์ของ Logto

Sijie
Sijie
Developer

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

บทความนี้ให้คำแนะนำทีละขั้นตอนในการตั้งค่า Google Cloud Storage เป็นผู้ให้บริการเก็บข้อมูลของคุณ

ข้อกำหนดเบื้องต้น

  • อินสแตนซ์ของ Logto ที่รันโดยธรรมชาติใน Node.js หรือใน Docker container หากคุณไม่มีให้ดูคู่มือนี้: https://docs.logto.io/docs/tutorials/get-started/#local
  • โปรเจคของ Google Cloud

การเตรียมบัคเก็ต

การสร้างบัคเก็ตเป็นเรื่องง่าย อ้างอิงจากเอกสารอย่างเป็นทางการของ Google Cloud: https://cloud.google.com/storage/docs/creating-buckets

เมื่อบัคเก็ตพร้อม ขั้นตอนต่อไปคือการตั้งค่าให้ดูได้สาธารณะ ทำดังนี้:

  1. ใน Google Cloud console, ไปที่หน้า Buckets ของ Cloud Storage
  2. จากรายการบัคเก็ต คลิกชื่อบัคเก็ตที่คุณต้องการให้เป็นสาธารณะ
  3. เลือกแท็บ Permissions ใกล้กับด้านบนของหน้า
  4. ในส่วน Permissions คลิกปุ่ม Grant access
  5. ในช่อง New principals ให้ป้อน allUsers
  6. ในดรอปดาวน์ Select a role ให้พิมพ์ Storage Object Viewer ในกล่องกรองและเลือก Storage Object Viewer จากผลลัพธ์ที่กรอง
  7. คลิก Save
  8. คลิก Allow public access

ให้แน่ใจว่าบทบาท "Storage Object Viewer" ถูกตั้งค่า นี่คือสกรีนช็อตเพื่อเป็นการอ้างอิง:

Storge Object Viewer

การรับไฟล์คีย์

Google Cloud SDKs มักจะใช้ "ไฟล์คีย์" หากคุณไม่คุ้นเคยกับ Google Cloud นี่อาจจะเป็นส่วนที่ท้าทายที่สุด ทำดังนี้:

  1. ไปที่หน้า service account: https://console.cloud.google.com/iam-admin/serviceaccounts
  2. สร้างบัญชี, ป้อนชื่อ, จากนั้นดำเนินการต่อ
  3. ในขั้นตอนถัดไป, เลือกบทบาท "Storage Object User" คุณสามารถหาได้โดยใช้การกรอง
  4. เมื่อคุณสร้างบัญชีเสร็จแล้ว ไปที่หน้ารายละเอียดบัญชีและเลือกแท็บ "keys"
  5. คลิก “add key”, เลือก “create a new key”, เลือก “json” ในกล่องสนทนา, แล้วดาวน์โหลดไฟล์ json ของคุณ

Storge Object User

การเพิ่มไฟล์คีย์ให้กับ Logto

Logto ควรมีการเข้าถึงไฟล์คีย์

การรันใน Node.js

คัดลอกไฟล์ไปที่ /path/to/logto/core และเปลี่ยนชื่อเป็น google-storage-key.json

การรันใน Docker Container

หากคุณรัน Logto ใน Docker container คุณต้องเมาท์ไฟล์ไปยัง container โดยใช้ Docker Compose ให้คุณเพิ่มสิ่งนี้ในการกำหนดค่าของคุณ:

อย่าลืมแทนที่ /path/to ด้วยพาธจริง

การอัปเดตการกำหนดค่าผู้ให้บริการ

เราจะใช้ CLI ของ Logto เพื่ออัปเดตการกำหนดค่าผู้ให้บริการ โดยปกติ CLI จะใช้ได้ในโฟลเดอร์รากของอินสแตนซ์ Logto เพื่อเรียนรู้เพิ่มเติม ตรวจสอบลิงค์นี้: https://docs.logto.io/docs/references/using-cli/

การเตรียม JSON

นี่คือตัวอย่างการกำหนดค่า JSON:

อย่าลืมแทนที่ projectId และ bucketName ด้วยค่าของคุณ

การอัปเดตผ่าน CLI

แปลง JSON เป็นสตริงและรันคำสั่งต่อไปนี้:

การทดสอบการตั้งค่า

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

ถ้าคุณพบว่าขั้นตอนเหล่านี้ซับซ้อน ให้พิจารณาใช้เวอร์ชันคลาวด์ของ Logto เราจัดการทุกอย่างให้คุณ!