ผู้ให้บริการจัดเก็บไฟล์
โดยค่าเริ่มต้น Logto Console ใช้ช่องกรอกข้อความสำหรับ URL ของไฟล์คงที่ เช่น อวาตาร์ หากต้องการประสบการณ์อัปโหลดไฟล์ที่ใช้งานง่ายขึ้นด้วยการลากและวาง คุณต้องกำหนดค่าผู้ให้บริการจัดเก็บไฟล์
Logto รองรับผู้ให้บริการจัดเก็บไฟล์หลายราย เช่น AWS S3, Azure Storage คู่มือนี้จะแสดงวิธีการกำหนดค่าผู้ให้บริการจัดเก็บไฟล์สำหรับ Logto
การกำหนดค่าจะถูกเก็บไว้ในตาราง systems
ของฐานข้อมูล แต่แนะนำให้ใช้ CLI เพื่อกำหนดค่าผู้ให้บริการจัดเก็บไฟล์ สำหรับข้อมูลเพิ่มเติม ลองใช้คำสั่ง "help":
pnpm logto db system --help
Azure Storage
Azure Storage เป็นโซลูชันจัดเก็บข้อมูลบนคลาวด์ที่มีประสิทธิภาพและขยายขนาดได้ ช่วยให้คุณจัดเก็บและจัดการข้อมูลของคุณบนคลาวด์ คู่มือนี้จะแสดงวิธีการกำหนดค่า Azure Storage เป็นผู้ให้บริการจัดเก็บไฟล์สำหรับ Logto
ข้อกำหนดเบื้องต้น
กำหนดค่าด้วย CLI
ตัวอย่างการใช้งาน:
pnpm logto db system set storageProvider '{"provider":"AzureStorage","connectionString":"DefaultEndpointsProtocol=https;AccountName=logto;AccountKey=oRhfTBHOHiBxxxxxxxxxxxxxxxxZ0se6XROftl/Xrow==;EndpointSuffix=core.windows.net","container":"logto"}'
connectionString
ในการเข้าถึง Azure Storage คุณต้องใช้ connection string ซึ่งเป็นสตริงที่มีข้อมูลที่จำเป็นสำหรับการเชื่อมต่อกับบัญชีจัดเก็บไฟล์ของคุณ
เพื่อรับ connection string โปรดดูเอกสาร Azure Storage connection string อย่างเป็นทางการ
container
container คือทรัพยากรจัดเก็บที่ใช้เก็บ blob คุณสามารถใช้ container เพื่อจัดระเบียบ blob และควบคุมการเข้าถึงข้อมูลของคุณ
เพื่อสร้าง container โปรดดูเอกสาร Azure Storage container อย่างเป็นทางการ
publicUrl
ไม่บังคับ
public URL คือ URL ที่ใช้เข้าถึงทรัพยากรจัดเก็บไฟล์แบบสาธารณะ หากคุณไม่ได้ใช้ CDN สามารถเว้นว่างไว้เพื่อใช้ "Primary endpoint" ของ Azure Storage เป็น public URL ได้ Logto จะดึงค่านี้จาก "connectionString" ด้วยความช่วยเหลือของ Azure SDK หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ primary endpoint ของบัญชีจัดเก็บไฟล์ของคุณ โปรดดูเอกสาร Azure Storage primary endpoint อย่างเป็นทางการ
S3 Storage
S3 Storage เป็นบริการจัดเก็บข้อมูลบนคลาวด์ที่ให้บริการ object storage ผ่านอินเทอร์เฟซเว็บ คู่มือนี้จะแสดงวิธีการกำหนดค่า S3 Storage เป็นผู้ให้บริการจัดเก็บไฟล์สำหรับ Logto
ข้อกำหนดเบื้องต้น
- บัญชี S3 Storage หรือบริการ S3 ที่เข้ากันได้ เช่น MinIO
กำหนดค่าด้วย CLI
ตัวอย่างการใช้งาน:
pnpm logto db system set storageProvider '{"provider":"S3Storage","accessKeyId":"my-access-key-id","accessSecretKey": "my-secret-access-key","bucket":"logto","endpoint":"https://s3.us-east-2.amazonaws.com"}'
accessKeyId
access key ID คือรหัสระบุบัญชี AWS ของคุณ หากต้องการค้นหา access Key ID สำหรับบัญชี AWS ของคุณ โปรดดูเอกสาร AWS access key ID อย่างเป็นทางการ
accessSecretKey
secret access key ใช้ร่วมกับ access key ID เพื่อเซ็นคำขอแบบโปรแกรม หากต้องการค้นหา access key secret สำหรับบัญชี AWS ของคุณ โปรดดูเอกสาร AWS access key secret อย่างเป็นทางการ
bucket
bucket คือคอนเทนเนอร์สำหรับวัตถุที่จัดเก็บใน Amazon S3 หากต้องการสร้าง bucket โปรดดูเอกสาร AWS S3 bucket อย่างเป็นทางการ
region
ไม่บังคับ
region คือภูมิภาคที่ bucket ของ AWS S3 ตั้งอยู่ หาก endpoint
เป็น endpoint มาตรฐานของ AWS S3 จะสามารถแยก region ได้จาก endpoint
หากต้องการค้นหา region ของ AWS S3 โปรดดูเอกสาร AWS S3 region อย่างเป็นทางการ
หากคุณใช้บริการ S3 ที่เข้ากันได้ สามารถเว้นค่านี้ว่างไว้ได้
endpoint
ไม่บังคับ
endpoint คือ URL ที่ใช้เข้าถึงบริการ AWS S3 หากต้องการค้นหา endpoint ของ AWS S3 โปรดดูเอกสาร AWS S3 endpoint อย่างเป็นทางการ
คุณสามารถเว้นค่านี้ว่างไว้เพื่อใช้ endpoint เริ่มต้นของ region ได้ หากคุณใช้บริการ S3 ที่เข้ากันได้ สามารถใช้ endpoint ของบริการนั้นได้
publicUrl
ไม่บังคับ
public URL คือ URL ที่ใช้เข้าถึงทรัพยากรจัดเก็บไฟล์แบบสาธารณะ หากคุณไม่ได้ใช้ CDN สามารถเว้นว่างไว้เพื่อใช้ URL เริ่มต้นของ S3 Storage ได้
Google Cloud Storage
Google Cloud Storage เป็นบริการจัดเก็บข้อมูลบนคลาวด์ที่ให้บริการ object storage ผ่านอินเทอร์เฟซเว็บ คู่มือนี้จะแสดงวิธีการกำหนดค่า Google Cloud Storage เป็นผู้ให้บริการจัดเก็บไฟล์สำหรับ Logto
ข้อกำหนดเบื้องต้น
- โปรเจกต์ Google Cloud
- bucket โปรดดูเอกสาร Google Cloud อย่างเป็นทางการ: https://cloud.google.com/storage/docs/creating-buckets
รับไฟล์คีย์
Google Cloud SDK มักใช้ "key file" หากคุณไม่คุ้นเคยกับ Google Cloud นี่อาจเป็นส่วนที่ท้าทายที่สุด วิธีการรับไฟล์คีย์มีดังนี้:
- ไปที่หน้า service account: https://console.cloud.google.com/iam-admin/serviceaccounts
- สร้างบัญชี กรอกชื่อ แล้วดำเนินการต่อ
- ในขั้นตอนถัดไป เลือกบทบาท “Storage Object User” สามารถค้นหาได้ด้วยตัวกรอง
- เมื่อสร้างบัญชีเสร็จแล้ว ไปที่หน้ารายละเอียดบัญชีและเลือกแท็บ “keys”
- คลิก “add key” เลือก “create a new key” เลือก “json” ในกล่องโต้ตอบ แล้วดาวน์โหลดไฟล์ json ของคุณ
เพิ่มไฟล์คีย์ให้ Logto
Logto ต้องสามารถเข้าถึงไฟล์คีย์นี้ได้
รันใน Node.js
คัดลอกไฟล์ไปที่ /path/to/logto/core
และเปลี่ยนชื่อเป็น google-storage-key.json
รันใน Docker Container
หากคุณรัน Logto ใน Docker container คุณต้อง mount ไฟล์นี้เข้าไปใน container สมมติว่าคุณใช้ Docker Compose ให้เพิ่มบรรทัดนี้ในไฟล์คอนฟิกของคุณ:
volumes:
- ./path/to/google-storage-key.json:/etc/logto/core/google-storage-key.json
อย่าลืมเปลี่ยน /path/to
เป็น path จริงของคุณ
กำหนดค่าด้วย CLI
ตัวอย่างการใช้งาน:
pnpm logto db system set storageProvider '{"provider":"GoogleStorage","projectId":"psychic-trainer-403801","keyFilename":"google-storage-key.json","bucketName":"logto-test2"}'
projectId
รหัสโปรเจกต์ Google Cloud ของคุณ
keyFilename
ชื่อไฟล์คีย์ หากทำตามขั้นตอนข้างต้นจะเป็น google-storage-key.json
bucketName
ชื่อ bucket
publicUrl
ไม่บังคับ
public URL คือ URL ที่ใช้เข้าถึงทรัพยากรจัดเก็บไฟล์แบบสาธารณะ หากคุณไม่ได้ใช้ CDN สามารถเว้นว่างไว้เพื่อใช้ URL เริ่มต้นของ S3 Storage ได้