使用ASP.NET Core Web API提供HLS影片串流服務
公司的APP其中一個功能是影片上傳及串流的服務,這陣子比較了許多影片串流及直播的通訊協定,最後選擇使用HLS協定來提供影片串流服務,流程包括「建立影片上傳API」、「影片轉檔」及「建立串流API」,這篇筆記記錄如何使用ASP.NET Core Web API來建立影音串流服務。
Promise in JavaScript
Promise是Javascript提供的建構函式,用於建構Promise物件,該物件會存放非同步事件的結果。
Validation attributes in ASP.NET Core
ASP.NET Core 裡的 Validation attributes 用於設定欄位的規則,當收到 HTTP 請求時依照規則檢查請求的資料是否符合 Validation attributes 設定的規則,以此過濾掉不符合規則的請求。
Model Binding in ASP.NET Core
controller會處理來自用戶端的HTTP Request,請求中會有一些資訊來往,這些資料會需要經過型別轉換、檢查必填、最大長度及正確性等步驟後我們才能使用,若手動處理這些步驟將會非常繁瑣。ASP.NET提供Model Binding的功能,可以處理來自使用者請求中的資料,將其綁定到指定型態的資料上,省去繁複的處理程序並提高正確性。
HTTP header Content-Disposition
Content-Disposition包含兩種類型,分別是inline 和 attachment,用於指定下載的行為
依賴注入 Dependency injection
依賴注入 Dependency injection
ASP.NET中RenderSection的作用
專案中的各個Page會被插入到_Layout.cshtml裡@RenderBody()的位置,與主版面整合。若Page中的某段程式不想被放在body內時,可以使用Section及RenderSection改變程式碼在_Layout.cshtml中的插入位置。
叢集索引與非叢集索引
通常資料庫在尋找資料是逐行檢查,看看每一筆資料是否符合條件,若符合則拿出,不符合就往下一筆直到結束,稱為Full table scan。隨著資料量越來越大,查找的時間也會跟著變慢,使用Index可以加快查詢速度。