ข้อมูลอ้างอิง
พื้นที่จัดเก็บ (S3 / R2 / MinIO)
กำหนดค่าตำแหน่งที่จัดเก็บไฟล์แนบ เอกสารความรู้ และทรัพยากร
AskAIs Customer Service ทำงานร่วมกับที่จัดเก็บอ็อบเจกต์ใด ๆ ที่รองรับ S3 สลับผู้ให้บริการได้โดยแก้ไขตัวแปร .env เพียงไม่กี่ตัว — โค้ดเหมือนกันทุกประการ ด้านล่างนี้: AWS S3, Cloudflare R2 และ MinIO ที่โฮสต์เอง
มีอะไรถูกจัดเก็บบ้าง
- ไฟล์แนบของข้อความ (รูปภาพ วิดีโอ PDF ฯลฯ) ที่ผู้เยี่ยมชมหรือเจ้าหน้าที่อัปโหลด
- เอกสารต้นทางของฐานความรู้ (สำหรับการนำเข้า RAG)
- เทมเพลตคีย์อ็อบเจกต์:
tenants/{tenantId}/yyyy/mm/{uuid}.{ext}
Cloudflare R2 (แนะนำสำหรับการโฮสต์เอง)
R2 ไม่มีค่าธรรมเนียม egress — เหมาะอย่างยิ่งหากคุณให้บริการไฟล์แนบแก่ผู้ใช้จำนวนมาก รับ access key และ secret ของคุณจากแดชบอร์ด R2 → Manage R2 API Tokens
# .env
S3_ENDPOINT="https://<account-id>.r2.cloudflarestorage.com"
S3_REGION="auto"
S3_BUCKET="singlink"
S3_ACCESS_KEY="..."
S3_SECRET_KEY="..."
# Public URL for the bucket (custom domain pointing to R2 public access)
S3_PUBLIC_URL="https://files.acme.com"หากต้องการ URL สาธารณะ ให้เปิดใช้ Public access บนบัคเก็ตและผูกซับโดเมนแบบกำหนดเอง (แดชบอร์ด R2 → บัคเก็ต → Settings → Custom Domains)
AWS S3
S3_ENDPOINT="" # leave empty for AWS
S3_REGION="us-east-1"
S3_BUCKET="singlink-prod"
S3_ACCESS_KEY="AKIA..."
S3_SECRET_KEY="..."
S3_PUBLIC_URL="https://singlink-prod.s3.amazonaws.com"นโยบายบัคเก็ตต้องอนุญาต s3:PutObject สำหรับ access key รวมถึงการอ่านแบบสาธารณะหากคุณต้องการให้ดาวน์โหลด ได้โดยไม่ต้องยืนยันตัวตน มิฉะนั้นเราจะถอยกลับไปใช้ URL GET แบบ presigned ในทุกการอ่าน
MinIO (ค่าเริ่มต้นสำหรับการพัฒนาในเครื่อง)
S3_ENDPOINT="http://localhost:9002"
S3_REGION="us-east-1"
S3_BUCKET="singlink"
S3_ACCESS_KEY="minio"
S3_SECRET_KEY="minio_dev_password"
S3_PUBLIC_URL="http://localhost:9002/singlink"Backblaze B2 (ทางเลือก S3 ราคาประหยัด)
S3_ENDPOINT="https://s3.us-west-001.backblazeb2.com"
S3_REGION="us-west-001"
S3_BUCKET="singlink"
S3_ACCESS_KEY="..."
S3_SECRET_KEY="..."ข้อควรระวัง
- CORS — บัคเก็ตต้องอนุญาต
POSTจากโฮสต์ของวิดเจ็ตของคุณ ผู้ให้บริการส่วนใหญ่ ตั้งค่าเริ่มต้นเป็นไวลด์การ์ด สำหรับ R2 ให้กำหนดกฎ CORS อย่างชัดเจนผ่าน API - ภูมิภาค
autoใช้ได้กับ R2 เท่านั้น ส่วน AWS / B2 ต้องการชื่อภูมิภาคจริง - S3_PUBLIC_URL — หากว่างเปล่า SDK จะสร้าง URL จาก
S3_ENDPOINT + bucketตั้งค่าอย่างชัดเจนเมื่ออยู่หลัง CDN หรือโดเมนแบบกำหนดเอง