柴魚筆記

程式・軟體・攝影

使用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可以加快查詢速度。