# การใช้ Cloud Storage Bucket เป็นต้นทางของสตรีม

Live Streaming CDN (HLS) สามารถดึงข้อมูล manifest ของ HLS/DASH พร้อมไฟล์ segment โดยตรงจาก cloud storage bucket (Amazon S3 หรือบริการที่รองรับ S3-compatible API) ได้เช่นเดียวกับ Web CDN แต่วิธีตั้งค่าจะต่างกัน คือแทนที่จะมีแผงตั้งค่าการเซ็นชื่อคำขอแยกต่างหาก ข้อมูลยืนยันตัวตน (credentials) ของ private bucket จะถูกฝังไว้ใน origin stream URL โดยตรง ผ่านการใช้ scheme s3:// หรือ s3s://

TIP

หาก bucket ของคุณเปิดให้เข้าถึงแบบสาธารณะ (public) อยู่แล้ว ไม่จำเป็นต้องทำตามขั้นตอนด้านล่างนี้ ใช้ origin URL แบบ http:// หรือ https:// ตามปกติได้เลย

# รูปแบบของ URL

s3://<ACCESS_KEY>:<SECRET_KEY>@<bucket>.<provider-hostname>/path/to/playlist.m3u8
s3s://<ACCESS_KEY>:<SECRET_KEY>@<bucket>.<provider-hostname>/path/to/playlist.m3u8
1
2
  • s3:// เชื่อมต่อไปยัง origin ผ่าน HTTP ธรรมดา (พอร์ต 80) ส่วน s3s:// เชื่อมต่อผ่าน HTTPS (พอร์ต 443, TLS) — แนะนำให้ใช้ s3s:// ยกเว้นกรณีที่ storage ของคุณไม่รองรับ TLS
  • <bucket> จะถูกดึงมาจากส่วนแรกของ hostname ดังนั้นให้ใช้ hostname แบบ virtual-hosted-style ของ bucket (<bucket>.<provider-domain>) เช่นเดียวกับข้อกำหนดของ Web CDN สำหรับ cloud storage origin
  • <ACCESS_KEY> / <SECRET_KEY> — access key ID และ secret access key ของ storage หากมี อักขระที่สงวนไว้ในรูปแบบ URL (:, /, @, ?, #) ให้เข้ารหัสแบบ percent-encode ก่อน เพื่อให้ระบบแยกส่วนของ URL ได้ถูกต้อง
  • คำขอไปยัง origin จะถูกเซ็นชื่อด้วย AWS Signature Version 2

# ขั้นตอนการตั้งค่า

ฟอร์ม Setup New Service รับ origin URL แบบ s3:// หรือ s3s:// ได้โดยตรง ไม่ต้องสร้างสตรีม ชั่วคราวแบบ http:///https:// ไว้ก่อน

  1. เข้าสู่ระบบ ByteArk Fleet (opens new window) คลิก Setup New Service เลือก Live Streaming CDN แล้วเลือก Yes, I have existing streaming URL
  2. กรอก URL แบบ s3:// หรือ s3s:// ของ bucket พร้อม credentials ที่ฝังไว้ตามรูปแบบด้านบน ในช่อง Origin Stream
  3. กดปุ่ม Setup

TIP

Access Key จะยังคงแสดงอยู่ในรายการ Streams ตามปกติ ส่วน Secret Key จะถูกซ่อนเป็น **** หลังจากบันทึกแล้ว

WARNING

หากเพิ่มสตรีมมากกว่า 1 รายการจาก hostname ของ bucket เดียวกัน (ผ่านแผง Streams ในหน้า service) ระบบจะใช้ credentials จากสตรีมแรกที่เพิ่มเข้าไปสำหรับ host นั้นเท่านั้น — credentials ที่ใส่ไว้ในสตรีมถัดไปของ host เดียวกันจะไม่ถูกนำไปใช้ ดังนั้นควรใส่ credentials ที่ถูกต้องไว้ใน URL แบบ s3:///s3s:// รายการแรกที่เพิ่มสำหรับแต่ละ bucket

# แก้ปัญหาเบื้องต้น

  • ได้รับ 403 Forbidden จาก origin — ตรวจสอบ Access Key และ Secret Key, ตรวจสอบว่า region ของ bucket ยังรองรับการเซ็นชื่อแบบ Signature V2 อยู่ และตรวจสอบว่าอักขระ /, @, หรือ : ใน secret ได้ทำการ percent-encode แล้ว