全部產品
Search
文件中心

ApsaraVideo Live:直播禁止推流功能相關問題

更新時間:Oct 31, 2024

什麼時候需要禁止推流?

當遇到如下業務情境,例如,對應的鑒權推流地址暴露、客戶惡意推流該地址、業務需求禁止該推流URL進行推流等,就可以使用直播的禁止推流功能滿足安全需求。

如何?禁止推流?

  • 直播控制台禁止推流

    • 擷取正在推流地址並禁推

      直播推流成功後,您可以在ApsaraVideo for Live控制台流管理頁面,選擇對應的網域名稱,單擊查詢,查看到正在推流的地址,單擊禁推即可。

      002

    • 擷取歷史推流地址並禁推

      直播推流結束後,您可以在ApsaraVideo for Live控制台流管理頁面,單擊歷史流頁簽,選擇對應的網域名稱,單擊查詢,查看到正在推流的地址,單擊禁推即可。

  • SDK實現禁止推流

    ApsaraVideo for Live的API是基於阿里雲的OpenAPI實現的。因此,SDK的調用也是對OpenAPI封裝後調用。下載服務端SDK,請參見服務端SDK。如何使用SDK,請參見SDK使用說明

    以Java SDK為例:Java SDK建議使用Maven管理專案依賴,在pom.xml中添加如下的依賴項:

    <dependencies>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-live</artifactId>
            <version>3.9.0</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <optional>true</optional>
            <version>2.3.8</version>
        </dependency>
    </dependencies>
                        
    說明

    此處SDK版本號碼僅供參考,擷取最新的版本,請參見服務端SDK

    其中,aliyun-java-sdk-core是對阿里雲OpenAPI封裝的核心模組,在使用OpenAPI的產品調用Java SDK均需要添加該依賴項,而aliyun-java-sdk-cdn包括了ApsaraVideo for Live介面的Request和Response類。其中,查詢推流黑名單列表的Request和Response類為DescribeLiveStreamsBlockListRequest及DescribeLiveStreamsBlockListResponse,Java程式碼範例如下:

    @Test
    public void testDescribeLiveStreamsBlockList() throws Exception {
        DescribeLiveStreamsBlockListResponse res = DescribeLiveStreamsBlockListR();
        System.out.println(res.getStreamUrls());
    }
    
    private DescribeLiveStreamsBlockListResponse DescribeLiveStreamsBlockListR() {
        DescribeLiveStreamsBlockListRequest request = new DescribeLiveStreamsBlockListRequest();
        request.setDomainName("<DomainName>");
        DescribeLiveStreamsBlockListResponse response=null;
        try {
            response = client.getAcsResponse(request);
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        } 
        return response;
    }

    Demo代碼主要流程如下:

    1. 初始化Client對象。

      SDK需要通過IAcsClient對象完成對OpenAPI的調用,而初始化IAcsClient對象時根據IClientProfile對象配置region、AccessKeyId和AccessKeySecret參數。其中,region請一直寫cn-hangzhou,因為這裡指的是OpenAPI的伺服器所在地區。AccessKeyId和AccessKeySecret參數即是帳號許可權驗證,如果是主帳號的AccessKeyId和AccessKeySecret,則可以正常使用。如果是子帳號的AccessKeyId和AccessKeySecret參數,則需要保證該子帳號有ApsaraVideo for Live的許可權。

    2. 初始化請求Request類。

      SDK對每個介面實現了對應的Request類和Response類,對應的禁止推流Request類需要傳入哪些參數。API介面定義請參見禁止推流API

    3. 發起請求擷取結果。

      使用Client對象的getAcsResponse方法發起Request對象請求,並根據該方法反饋的還原序列化的結果執行個體化為對應介面的Response類,且在執行該方法時可以catch ServerException和ClientException異常類。

      • 當http status>=300且<500,SDK拋ClientException,表示用戶端錯誤。

      • 當http status>=500,SDK拋ServerException,表示伺服器端錯誤。

      • 如果沒有拋出異常,則表示介面調用成功。

如何查看推流黑名單?

  • 直播控制台查看推流黑名單

    禁推成功後,您可以在ApsaraVideo for Live控制台流管理頁面,選擇對應的網域名稱,單擊禁推流頁簽,單擊查詢,即可查看被禁推的直播流。

  • SDK擷取推流黑名單

    ApsaraVideo for Live的API是基於阿里雲的OpenAPI實現的。因此,SDK的調用也是對OpenAPI封裝後調用。下載服務端SDK,請參見服務端SDK。如何使用SDK,請參見SDK使用說明

    <dependencies>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-live</artifactId>
            <version>3.9.0</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <optional>true</optional>
            <version>2.3.8</version>
        </dependency>
    </dependencies>
    說明

    此處SDK版本號碼僅供參考,擷取最新的版本,請參見服務端SDK

    其中,aliyun-java-sdk-core是對阿里雲OpenAPI封裝的核心模組,在使用OpenAPI的產品調用Java SDK均需要添加該依賴項,而aliyun-java-sdk-cdn包括了ApsaraVideo for Live介面的Request和Response類。其中,查詢推流黑名單列表的Request和Response類為DescribeLiveStreamsBlockListRequest及DescribeLiveStreamsBlockListResponse,Java程式碼範例如下:

    @Test
    public void testDescribeLiveStreamsBlockList() throws Exception {
        DescribeLiveStreamsBlockListResponse res=DescribeLiveStreamsBlockListR();
        System.out.println(res.getStreamUrls());
    }
    DescribeLiveStreamsBlockListResponse DescribeLiveStreamsBlockListR() {
        DescribeLiveStreamsBlockListRequest request =new DescribeLiveStreamsBlockListRequest();
        request.setDomainName("<DomainName>");
        DescribeLiveStreamsBlockListResponse response=null;
        try {
            response = client.getAcsResponse(request);
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        } 
        return response;
    }

    Demo代碼主要流程如下:

    1. 初始化Client對象。

      SDK需要通過IAcsClient對象完成對OpenAPI的調用,而初始化IAcsClient對象時根據IClientProfile對象配置region、AccessKeyId和AccessKeySecret參數。其中,region請一直寫cn-hangzhou,因為這裡指的是OpenAPI的伺服器所在地區。AccessKeyId和AccessKeySecret參數即是帳號許可權驗證,如果是主帳號的AccessKeyId和AccessKeySecret則可以正常使用,如果是子帳號的AccessKeyId和AccessKeySecret參數則需要保證該子帳號有ApsaraVideo for Live的許可權。

    2. 初始化請求Request類。

      SDK對每個介面實現了對應的Request類和Response類,對應的禁止推流Request類需要傳入哪些參數。API介面定義請參見查詢推流黑名單列表API

    3. 發起請求擷取結果。

      使用Client對象的getAcsResponse方法發起Request對象請求,並根據該方法反饋的還原序列化的結果執行個體化為對應介面的Response類,且在執行該方法時可以catch ServerException和ClientException異常類。

      • 當http status>=300且<500,SDK拋ClientException,表示用戶端錯誤。

      • 當http status>=500,SDK拋ServerException,表示伺服器端錯誤。

      • 如果沒有拋出異常,則表示介面調用成功。

如何恢複黑名單直播流推送地址?

  • 直播控制台恢複

    禁推成功後,您可以在ApsaraVideo for Live控制台流管理頁面,選擇對應的網域名稱,單擊禁推流頁簽,單擊復原,即可恢複被禁推的直播流。

  • SDK恢複

    ApsaraVideo for Live的API是基於阿里雲的OpenAPI實現的。因此,SDK的調用也是對OpenAPI封裝後調用。下載服務端SDK,請參見服務端SDK。如何使用SDK,請參見SDK使用說明

    以Java SDK為例:Java SDK建議使用Maven管理專案依賴,在pom.xml中添加如下的依賴項:

    <dependencies>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-live</artifactId>
            <version>3.9.0</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <optional>true</optional>
            <version>2.3.8</version>
        </dependency>
    </dependencies>
    說明

    此處SDK版本號碼僅供參考,擷取最新的版本,請參見服務端SDK

    其中,aliyun-java-sdk-core是對阿里雲OpenAPI封裝的核心模組,在使用OpenAPI的產品調用Java SDK均需要添加該依賴項,而aliyun-java-sdk-cdn包括了ApsaraVideo for Live介面的Request和Response類。其中,查詢推流黑名單列表的Request和Response類為DescribeLiveStreamsBlockListRequest及DescribeLiveStreamsBlockListResponse,Java程式碼範例如下:

    @Test
    public void testDescribeLiveStreamsBlockList() throws Exception {
        DescribeLiveStreamsBlockListResponse res=DescribeLiveStreamsBlockListR();
        System.out.println(res.getStreamUrls());
    }
    static DescribeLiveStreamsBlockListResponse DescribeLiveStreamsBlockListR() {
        DescribeLiveStreamsBlockListRequest request =new DescribeLiveStreamsBlockListRequest();
        request.setDomainName("<DomainName>");
        DescribeLiveStreamsBlockListResponse response=null;
        try {
            response = client.getAcsResponse(request);
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        } 
        return response;
    }

    Demo代碼主要流程如下:

    1. 初始化Client對象。

      SDK需要通過IAcsClient對象完成對OpenAPI的調用,而初始化IAcsClient對象時根據IClientProfile對象配置region、AccessKeyId和AccessKeySecret參數。其中region請一直寫cn-hangzhou,因為這裡指的是OpenAPI的伺服器所在地區。AccessKeyId和AccessKeySecret參數即是帳號許可權驗證。如果是主帳號的AccessKeyId和AccessKeySecret,則可以正常使用。如果是子帳號的AccessKeyId和AccessKeySecret參數,則需要保證該子帳號有ApsaraVideo for Live的許可權。

    2. 初始化請求Request類。

      SDK對每個介面實現了對應的Request類和Response類,對應的恢複推流Request類需要傳入哪些參數。API介面定義請參見恢複直播流推送API

    3. 發起請求擷取結果。

      使用Client對象的getAcsResponse方法發起Request對象請求,並根據該方法反饋的還原序列化的結果執行個體化為對應介面的Response類,且在執行該方法時可以catch ServerException和ClientException異常類。

      • 當http status>=300且<500,SDK拋ClientException,表示用戶端錯誤。

      • 當http status>=500,SDK拋ServerException,表示伺服器端錯誤。

      • 如果沒有拋出異常,則表示介面調用成功。