최신 업데이트:2025-05-29 14:58:53
이 문서는 당사의 서비스가 미디어 처리 작업에 대한 보안 알림을 전송하는 방식을 설명합니다. 당사는 이러한 알림이 진본임을 보장하고 처리 결과에 대한 상세 정보를 포함하기 위한 검증 메커니즘을 제공합니다.
보안을 보호하기 위해 모든 알림 요청에 Authorization 헤더를 포함시킵니다. 이를 통해 알림이 합법적이며 당사 서비스에서 전송되었음을 확인할 수 있습니다.
<AccessKey>:URLSAFE_BASE64(HMAC_SHA1(NotifyUrlWithOutQuery + "\n" + NotifyBody, SecretKey))
여기서:
AccessKey는 계정의 액세스 키입니다NotifyBody는 알림 내용입니다SecretKey는 계정의 비밀 키입니다중요: 당사는 계정의 유효한 AccessKey(AK)와 AccessKey Secret(SK) 쌍 중 하나를 무작위로 선택하여 Authorization 값을 생성합니다. 요청에 사용된 AccessKey를 매칭하여 콜백 알림을 인증하기 위해 모든 Access Key와 Access Key Secret을 기록해 두어야 합니다.
NotifyUrl을 구성하면 미디어 처리 완료 후 JSON 형식의 알림이 해당 엔드포인트로 전송됩니다. 알림 내용은 URL-safe Base64로 인코딩되며 처리 작업에 대한 포괄적인 정보를 포함합니다.
콜백 URL은 다음을 충족해야 합니다:
| 필드 이름 | 타입 | 설명 |
|---|---|---|
id |
string | 미디어 처리 작업의 persistentId |
code |
int | 작업 상태 코드: • 1 - 일부 작업 진행 중, 나머지 완료 • 2 - 일부 작업 오류 발생, 나머지 완료/진행 중 • 3 - 모든 작업 성공 |
desc |
string | 상태 코드에 해당하는 설명 |
separate |
string | 알림 유형: • 0 - 일회성 알림 • 1 - 다중 분리 알림 중 하나 |
inputkey |
string | 원본 파일 이름 |
inputbucket |
string | 원본 파일이 저장된 버킷 |
inputfsize |
int | 원본 파일 크기(바이트) |
items |
array | 각 작업의 상태 정보 |
items 배열의 각 항목은 다음을 포함합니다:
| 필드 이름 | 타입 | 설명 |
|---|---|---|
cmd |
string | 작업 명령(fops) |
code |
string | 처리 결과 코드: • 2 - 실패 • 3 - 성공 |
costTime |
int | 트랜스코딩 시간(초, 기본값 0) |
desc |
string | 작업 결과 설명 |
error |
string | 오류 상세 정보(실패 시) |
fsize |
int | 출력 미디어 크기(바이트) |
hash |
string | 결과 해시 값 |
key |
string | 결과 키(형식: bucketName:key) |
url |
string | 트랜스코딩 미디어 접근 URL |
duration |
double | 트랜스코딩 미디어 지속 시간(초) |
bit_rate |
string | 트랜스코딩 미디어 비트레이트 |
resolution |
string | 트랜스코딩 비디오 해상도 |
detail |
array | 다중 출력 시 각 미디어 출력에 대한 상세 정보 |
| 필드 이름 | 타입 | 설명 |
|---|---|---|
fsize |
int | 트랜스코딩 파일 크기(m3u8 형식 시 매니페스트 파일 크기) |
tssize |
int | m3u8 출력 시 ts 파일 총 크기(기타 형식 0) |
hash |
string | 출력 해시 값 |
key |
string | 출력 키(형식: bucketName:key) |
url |
string | 출력 접근 URL |
duration |
double | 출력 지속 시간(초) |
bit_rate |
string | 출력 비트레이트 |
resolution |
string | 출력 비디오 해상도 |
{
"id": "2c90802745ee87870145ef1430f90006",
"code": 3,
"desc": "operate [\"avthumb/flv\"] is finish",
"separate": 0,
"inputkey": "aaa.flv",
"inputbucket": "chenqltesttwo",
"inputfsize": 20000,
"items": [
{
"cmd": "avthumb/flv",
"code": "3",
"costTime": 0,
"desc": "finish",
"error": null,
"fsize": 20000,
"hash": "FlWvHsc-CK6miygKCcLjCaQ5csNO",
"key": "chenqltesttwo:aaa.flv",
"url": "http://chenqltesttwo.com/aaa.flv",
"duration": 198.083,
"bit_rate": "1288025",
"resolution": "1280X720",
"detail": [
{
"fsize": 20000,
"tssize": 1024,
"hash": "FlWvHsc-CK6miygKCcLjCaQ5csNO",
"key": "chenqltesttwo:aaa.flv",
"url": "http://chenqltesttwo.com/aaa.flv",
"duration": 198.083,
"bit_rate": "1288025",
"resolution": "1280X720"
}
]
}
]
}