# การใช้ 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
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:// ไว้ก่อน
- เข้าสู่ระบบ ByteArk Fleet (opens new window) คลิก เลือก Live Streaming CDN แล้วเลือก Yes, I have existing streaming URL
- กรอก URL แบบ
s3://หรือs3s://ของ bucket พร้อม credentials ที่ฝังไว้ตามรูปแบบด้านบน ในช่อง Origin Stream - กดปุ่ม
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 แล้ว