什麼時候需要禁止推流?
當遇到如下業務情境,例如,對應的鑒權推流地址暴露、客戶惡意推流該地址、業務需求禁止該推流URL進行推流等,就可以使用直播的禁止推流功能滿足安全需求。
如何?禁止推流?
直播控制台禁止推流
擷取正在推流地址並禁推
直播推流成功後,您可以在ApsaraVideo for Live控制台的 頁面,選擇對應的網域名稱,單擊查詢,查看到正在推流的地址,單擊禁推即可。
擷取歷史推流地址並禁推
直播推流結束後,您可以在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代碼主要流程如下:
初始化Client對象。
SDK需要通過IAcsClient對象完成對OpenAPI的調用,而初始化IAcsClient對象時根據IClientProfile對象配置region、AccessKeyId和AccessKeySecret參數。其中,region請一直寫cn-hangzhou,因為這裡指的是OpenAPI的伺服器所在地區。AccessKeyId和AccessKeySecret參數即是帳號許可權驗證,如果是主帳號的AccessKeyId和AccessKeySecret,則可以正常使用。如果是子帳號的AccessKeyId和AccessKeySecret參數,則需要保證該子帳號有ApsaraVideo for Live的許可權。
初始化請求Request類。
SDK對每個介面實現了對應的Request類和Response類,對應的禁止推流Request類需要傳入哪些參數。API介面定義請參見禁止推流API。
發起請求擷取結果。
使用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代碼主要流程如下:
初始化Client對象。
SDK需要通過IAcsClient對象完成對OpenAPI的調用,而初始化IAcsClient對象時根據IClientProfile對象配置region、AccessKeyId和AccessKeySecret參數。其中,region請一直寫cn-hangzhou,因為這裡指的是OpenAPI的伺服器所在地區。AccessKeyId和AccessKeySecret參數即是帳號許可權驗證,如果是主帳號的AccessKeyId和AccessKeySecret則可以正常使用,如果是子帳號的AccessKeyId和AccessKeySecret參數則需要保證該子帳號有ApsaraVideo for Live的許可權。
初始化請求Request類。
SDK對每個介面實現了對應的Request類和Response類,對應的禁止推流Request類需要傳入哪些參數。API介面定義請參見查詢推流黑名單列表API。
發起請求擷取結果。
使用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代碼主要流程如下:
初始化Client對象。
SDK需要通過IAcsClient對象完成對OpenAPI的調用,而初始化IAcsClient對象時根據IClientProfile對象配置region、AccessKeyId和AccessKeySecret參數。其中region請一直寫cn-hangzhou,因為這裡指的是OpenAPI的伺服器所在地區。AccessKeyId和AccessKeySecret參數即是帳號許可權驗證。如果是主帳號的AccessKeyId和AccessKeySecret,則可以正常使用。如果是子帳號的AccessKeyId和AccessKeySecret參數,則需要保證該子帳號有ApsaraVideo for Live的許可權。
初始化請求Request類。
SDK對每個介面實現了對應的Request類和Response類,對應的恢複推流Request類需要傳入哪些參數。API介面定義請參見恢複直播流推送API。
發起請求擷取結果。
使用Client對象的getAcsResponse方法發起Request對象請求,並根據該方法反饋的還原序列化的結果執行個體化為對應介面的Response類,且在執行該方法時可以catch ServerException和ClientException異常類。
當http status>=300且<500,SDK拋ClientException,表示用戶端錯誤。
當http status>=500,SDK拋ServerException,表示伺服器端錯誤。
如果沒有拋出異常,則表示介面調用成功。