Google Cloud Storage
Google Cloud Storage ใช้สำหรับเก็บไฟล์ที่อัพโหลด เช่น รูปโปรไฟล์, เอกสาร ฯลฯ ผ่าน Google Cloud Project สามารถใช้ Project เดียวกับการ Setup Google Cloud OAuth ได้เลย
💡 หมายเหตุ: GCS เป็น optional — ถ้ายังไม่ต้องการระบบอัพโหลดไฟล์ สามารถข้ามบทนี้ได้
ขั้นตอนที่ 1: ตั้งค่า Billing Account
GCS ต้องมี Billing Account แม้ว่าจะมี free tier ก็ตาม
- ไปที่เมนู Billing ใน sidebar

- ถ้ายังไม่มี billing account จะเห็นข้อความแจ้งเตือน ให้คลิก Link a billing account

- คลิก Create billing account เพื่อสร้างใหม่ (ต้องใส่ข้อมูลบัตรเครดิต)

- หลังจากสร้างเสร็จ จะเห็นหน้า Billing Overview พร้อม Free trial credit ถ้าหากยังไม่เคยใช้บริการ Google Cloud มาก่อน

💡 Free Trial: Google Cloud ให้ credit ฟรี ~$300 สำหรับ 90 วันแรก
ขั้นตอนที่ 2: สร้าง Storage Bucket
- ไปที่เมนู Cloud Storage (1) > Buckets (2)

- คลิก Create เพื่อสร้าง bucket ใหม่

- กรอกข้อมูล:
- Name — ตั้งชื่อ bucket (ต้อง unique ทั่วโลก)
- Location — เลือก asia-southeast3 (Bangkok) สำหรับผู้ใช้ในไทย
- Storage class — เลือก Standard
- ค่าอื่นๆ ใช้ default ได้

- คลิก Create แล้วรอสักครู่

ขั้นตอนที่ 3: สร้าง Service Account
Service Account ใช้สำหรับให้ app เข้าถึง GCS
- ไปที่เมนู IAM & Admin (1) > Service Accounts (2)

- คลิก Create service account

Step 1: Service Account Details
กรอกชื่อ (1) แล้วคลิก Create and continue (2)

Step 2: Grant Access
เลือก Role เป็น Storage Object User (1) แล้วคลิก Continue (2)

💡 Storage Object User ให้สิทธิ์ create, read, update, delete objects ใน GCS
Step 3: Done
คลิก Done (1) เพื่อสร้าง service account

ขั้นตอนที่ 4: สร้าง JSON Key
- ในรายการ service accounts คลิก ⋮ แล้วเลือก Manage keys

- คลิก Add key > Create new key

- เลือก JSON (1) แล้วคลิก Create (2)

- ไฟล์ JSON จะถูกดาวน์โหลดอัตโนมัติ

⚠️ สำคัญ: เก็บไฟล์นี้ไว้อย่างปลอดภัย! ห้าม commit ลง Git
ขั้นตอนที่ 5: นำไปใช้ใน npm run setup
เมื่อรัน npm run setup จะถูกถามค่า:
| ค่า | ที่มา |
|---|---|
GCS_BUCKET | ชื่อ bucket ที่สร้าง (เช่น vibe-coding-storage-2026) |
GCS_PROJECT_ID | ดูได้จาก JSON key ในฟิลด์ project_id |
GCS_CREDENTIALS | เนื้อหาทั้งหมดของไฟล์ JSON |
เปิดไฟล์ JSON ที่ดาวน์โหลดมา:

แล้ว copy เนื้อหาทั้งหมด paste ลงใน terminal ตอนที่ถาม GCS_CREDENTIALS
💡 Setup wizard จะจัดการ format ให้อัตโนมัติ สามารถ paste แบบ one-line หรือไม่ก็ได้
ตัวอย่างไฟล์ที่อัปโหลดใน Storage

เมื่อติดตั้งและอัปโหลดไฟล์เสร็จแล้ว ระบบจะเก็บข้อมูลที่ Buckets โดยสำหรับไฟล์ที่เกี่ยวกับผู้ใช้จะถูกเก็บแยกตามผู้ใช้งานเช่น
ตัวอย่าง Path ของการอัปโหลดภาพ uploads/user_id/file_name.png
สรุป
| ขั้นตอน | สิ่งที่ต้องทำ |
|---|---|
| 1. ตั้งค่า Billing | สร้าง billing account (ได้ free credit $300) |
| 2. สร้าง Bucket | ตั้งชื่อ, เลือก region: Bangkok |
| 3. สร้าง Service Account | ตั้งชื่อ, เลือก role: Storage Object User |
| 4. สร้าง JSON Key | ดาวน์โหลดและเก็บไว้อย่างปลอดภัย |
| 5. ใช้ใน setup | ใส่ bucket name, project ID, และ JSON credentials |