Skip to content

เพิ่มช่องทาง S3

เหมาะกับกรณีไหน

ใช้ช่องทาง S3 เมื่อ:

  • ต้องการเชื่อมต่อ object storage service ที่รองรับ S3 เช่น Cloudflare R2, Backblaze B2, MinIO, AWS S3 หรือ provider อื่นที่ compatible
  • ชอบรูปแบบการตั้งค่า S3 มาตรฐาน: Endpoint, Access Key และ Secret Key
  • ไม่ต้องการใช้ช่องทาง native Cloudflare R2 binding หรือ storage provider ของคุณไม่ใช่ Cloudflare R2

สิ่งที่ต้องเตรียมก่อนเริ่ม

ข้อกำหนดวัตถุประสงค์
S3 EndpointS3 API endpoint ของ object storage service
Bucket nameBucket ที่จะใช้เก็บไฟล์
RegionStorage region สำหรับ Cloudflare R2 มักเป็น auto
Access Key IDS3 access key ID
Secret Access KeyS3 secret access key
CDN domainCustom domain สำหรับการเข้าถึงไฟล์แบบไม่บังคับ

ตัวอย่าง Cloudflare R2 ผ่าน S3 API:

text
Endpoint: https://your-account-id.r2.cloudflarestorage.com
Bucket: your-r2-bucket-name
Region: auto
Access Key ID: copied from the Cloudflare R2 API token
Secret Access Key: copied from the Cloudflare R2 API token

เพิ่มได้จากที่ไหน

  1. เปิดการตั้งค่าระบบ
  2. ไปที่การตั้งค่าการอัปโหลด
  3. คลิกเพิ่มช่องทางที่มุมขวาบน
  4. เลือก S3

รายละเอียดฟิลด์

ฟิลด์ใช้ทำอะไรจำเป็น
Channel nameชื่อที่จำง่ายสำหรับช่องทาง S3 เช่น s3test หรือ R2-S3ใช่
Enable channelควบคุมว่าช่องทางนี้จะเข้าร่วมการเลือกช่องทางอัปโหลดหรือไม่แนะนำ
EndpointS3 service endpoint แบบเต็ม รวม https://ใช่
Custom CDN domainไม่บังคับ เมื่อใส่แล้ว file links ที่สร้างขึ้นจะเลือกใช้ domain นี้ก่อนไม่
Bucket nameBucket name เช่น s3test หรือ img-r2ใช่
Bucket regionRegion สำหรับ Cloudflare R2 มักเป็น autoใช่
Access Key IDS3 access key IDใช่
Secret Access KeyS3 secret access keyใช่
Path-style accessCompatibility switch ค่าเริ่มต้น off บาง MinIO, OpenList หรือ self-hosted S3 service อาจต้องใช้ไม่
Quota limitควบคุมว่าช่องทาง S3 นี้จะเข้าร่วมการเลือกช่องทางอัปโหลดตาม capacity หรือไม่ไม่
Capacity limitจำเป็นหลังเปิด quota limit เช่น 10 GBจำเป็นเมื่อเปิด quota limit
Thresholdหยุดเขียนเมื่อ usage ถึง percentage นี้ เช่น 90%จำเป็นเมื่อเปิด quota limit
Remarkหมายเหตุสำหรับดูแลเองไม่

สร้าง Cloudflare R2 S3 API Keys

  1. เปิด Cloudflare Dashboard
  2. ไปที่ R2 Object Storage
  3. หา Manage R2 API Tokens หรือ entry สำหรับจัดการ API token

R2 API token entry

  1. สร้าง R2 API token ที่เข้าถึง target bucket ได้

สร้าง account API token

  1. คัดลอก Access Key ID และ Secret Access Key ที่สร้างขึ้น

คัดลอกค่า token

  1. กลับไปหน้า R2 bucket และยืนยัน bucket name
  2. จด S3 API endpoint ของ account โดยปกติหน้าตาแบบนี้:
text
https://your-account-id.r2.cloudflarestorage.com

ขั้นตอนตั้งค่า

  1. เปิด Upload Settings
  2. คลิกเพิ่มช่องทาง
  3. เลือก S3
  4. ใส่ channel name ที่จำได้ เช่น s3test
  5. ใส่ S3 API endpoint ใน Endpoint
  6. ถ้าใช้ custom CDN ให้ใส่ใน Custom CDN domain; ถ้าไม่ใช้ให้เว้นว่าง
  7. ใส่ bucket name
  8. ใส่ region สำหรับตัวอย่าง Cloudflare R2 ใช้ auto
  9. ใส่ Access Key ID และ Secret Access Key
  10. ปล่อย path-style access เป็น off เว้นแต่ provider ระบุชัดว่าต้องใช้
  11. ถ้าต้องการ capacity control ให้เปิด quota limit แล้วใส่ capacity limit และ threshold
  12. คลิก Save

เพิ่มการกำหนดค่า S3

วิธีตรวจสอบ

รายการตรวจสอบวิธีตรวจสอบ
เห็นการ์ดช่องทางหลังบันทึก หน้า Upload Settings ควรแสดงการ์ดช่องทาง S3
ช่องทางเปิดใช้งานอยู่สวิตช์มุมขวาบนของการ์ดควรอยู่ on
บันทึกฟิลด์สำคัญแล้วDetail view ควรแสดง Endpoint, Bucket, Region, path-style access และฟิลด์ที่เกี่ยวข้อง
การอัปโหลดใช้งานได้อัปโหลดรูปทดสอบแล้วตรวจว่า object ไปอยู่ใน target bucket
เปิดลิงก์ได้ลิงก์รูปภาพที่ได้หลังอัปโหลดควรเปิดได้ตามปกติ
การแสดง capacity ใช้งานได้ถ้าเปิด quota limit การ์ดควรแสดง capacity ที่ใช้แล้วและ limit ที่กำหนดค่าไว้

S3 capacity statistics คำนวณจาก local file records ของ ImgHost ไม่ได้ query provider bucket แบบ real time หลังบันทึก S3 configuration แล้ว ระบบจะคำนวณ quota ledger ใหม่จาก D1 records ปัจจุบัน

Quota query สำเร็จ

FAQ

ควรเปิด path-style access ไหม?

โดยทั่วไปไม่ต้อง

เปิดเฉพาะเมื่อ S3-compatible provider ไม่รองรับ virtual-hosted-style URLs หรือ provider documentation ระบุชัดว่าต้องใช้ path-style access บาง MinIO, self-hosted S3 และ OpenList-compatible endpoints อาจต้องใช้

CDN domain ใช้ทำอะไร?

ถ้าคุณวาง CDN หรือ custom access domain ไว้หน้า bucket ให้ใส่ตรงนี้

หลัง configure แล้ว file links ที่สร้างขึ้นจะเลือกใช้ domain นี้ก่อน ถ้าไม่ได้ใช้ CDN ให้เว้นว่าง

ทำไมการอัปโหลดจึงล้มเหลว?

ตรวจสิ่งเหล่านี้ก่อน:

  1. Endpoint เป็น URL https:// แบบเต็ม
  2. Bucket name ถูกต้อง
  3. Region ตรงกับข้อกำหนดของ provider
  4. คัดลอก Access Key ID และ Secret Access Key มาครบ
  5. Key มี write permission สำหรับ target bucket
  6. Provider ไม่ต้องใช้ path-style access หรือถ้าต้องใช้ก็เปิดไว้แล้ว

รายการตรวจสอบด่วน

text
Prepare S3 Endpoint, Bucket, Region, Access Key, and Secret Key
-> Open Upload Settings
-> Add Channel
-> Select S3
-> Enter Endpoint / Bucket / Region / Access Key / Secret Key
-> Enter a CDN domain if needed
-> Leave path-style access off by default
-> Enable quota limit if needed
-> Save
-> Upload a test image and check the result

Released as user documentation for ImgHost.