Xunlei Cloud 가속 개방형 플랫폼 인터페이스 문서

글로벌 인터페이스

인터페이스 이름 기능 설명
XL_초기화 SDK를 초기화하고 후속 작업을 처리할 수 있도록 준비합니다.
XL_UnInit SDK 초기화를 해제하고 모듈 실행 중에 요청된 리소스를 해제합니다.
XL_DelTemp파일 임시 파일 삭제
XL_SetSpeedLimit 최대 다운로드 속도 설정
XL_SetProxy 글로벌 프록시 설정
XL_SetUserAgent HTTP 요청 설정 시 클라이언트 정보
XL_ParseThunderPrivateUrl Xunlei 비공개 링크를 실제 URL로 변환
XL_SetUploadSpeedLimit 업로드 속도 제한
XL_CreateTaskByURL 간단히 XL_CreateTask 인터페이스를 캡슐화합니다.
XL_CreateTaskByThunder Thunder 7을 당겨 다운로드 작업을 생성하세요.
XL_ForceStopTask 강제 일시 중단 작업

작업 인터페이스

인터페이스 이름 기능 설명
XL_CreateTask 작업 만들기
XL_DeleteTask 작업 파괴
XL_StartTask 작업 시작
XL_StopTask 작업 중지
XL_QueryTaskInfoEx 작업 정보 쿼리

인터페이스 세부정보

XL_초기화

BOOLXL_Init(무효)

다운로드 엔진을 초기화하고 후속 작업을 처리할 수 있도록 준비합니다.
반환 값: TRUE는 성공을 의미하고 FALSE는 실패를 의미합니다. 바이너리 파일이 누락된 경우와 같은 일부 특수한 경우에는 초기화가 실패할 수 있습니다.
참고: 이 인터페이스는 XL_Unit(void)와 쌍으로 나타나야 합니다. 이 인터페이스를 호출하면 xldl.dll은 MiniThunderPlatform.exe 하위 프로세스를 불러옵니다.

XL_UnInit

BOOL XL_UnInit(무효)

다운로드 엔진을 초기화 해제하고 모듈 작업 중에 요청된 리소스를 해제합니다.
返回值: TRUE는 성공을 의미하고, FALSE는 실패를 의미합니다.
说明: 이 인터페이스를 호출한 후 MiniThunderPlatform.exe 하위 프로세스에 종료하라는 알림이 표시됩니다.

XL_CreateTask

핸들 XL_CreateTask(DownTaskParam &stParam)

작업을 만듭니다. 새 작업을 생성하거나 작업을 재개할 수 있으며, 매개변수의 IsResume은 해당 작업이 재개 작업인지 여부를 나타내는 데 사용됩니다. 기타 자세한 내용은 DownTaskParam 정의를 참고하세요.
参数: [in] stParam, 작업을 생성하는 데 필요한 매개변수입니다.
DownTaskParam 참조:

struct DownTaskParam {
    
     
int nReserved1; 
TCHAR szTaskUrl[2084]; // 任务URL,支持http,https,ftp,ftps格式 
TCHAR szRefUrl[2084]; // 可空,HTTP下载所在的网页URL 
TCHAR szCookies[4096]; // 可空,浏览器cookie 
TCHAR szFilename[MAX_PATH]; // 下载保存文件名. 
TCHAR szReserved[MAX_PATH]; 
TCHAR szSavePath[MAX_PATH]; // 文件保存目录 
HWND hReserved; 
BOOL bReserved1; 
TCHAR szReserved1[64]; 
TCHAR szReserved2[64]; 
BOOL IsOnlyOriginal; //是否只从原始地址下载 
UINT nReserved2; 
BOOL bReserved2; 
BOOL IsResume; // 是否用续传 
DWORD reserved[2048]; 
}

返回值: 작업 핸들을 반환합니다.
说明: 작업이 생성된 후에는 즉시 다운로드되지 않으며 XL_StartTask를 호출해야 합니다. 비동기적으로 실행됩니다.

XL_DeleteTask

BOOL XL_DeleteTask(HANDLE hTask)

작업을 삭제하고 실행 중에 작업에서 요청한 리소스를 해제합니다.
매개변수: [in]hTask, 작업 핸들
반환 값: TRUE는 성공을 의미하고 FALSE는 실패를 의미합니다. 작업이 없으면 호출이 실패합니다.
참고: 리소스가 가능한 한 빨리 해제되도록 하려면 작업이 일시 중지, 성공 또는 삭제될 때 이 인터페이스를 호출해야 합니다. 비동기 실행, 작업이 보류 상태인 경우 이 인터페이스를 호출할 수 없습니다.

XL_StartTask

BOOL XL_StartTask(HANDLE hTask);

다운로드를 시작하다. 작업이 성공적으로 생성된 후 다운로드가 즉시 시작되지 않으며 다운로드를 시작하려면 이 인터페이스를 호출해야 합니다.
매개변수: [in]hTask, 작업 핸들
반환 값: TRUE는 성공을 의미하고 FALSE는 실패를 의미합니다. 작업이 없으면 호출이 실패합니다.
설명: 비동기 실행, 작업이 보류 상태인 경우 이 인터페이스를 호출할 수 없습니다.

XL_StopTask

BOOL XL_StopTask(HANDLE hTask)

다운로드 중지 매개
변수: [in]hTask, 작업 핸들
반환 값: TRUE는 성공을 의미하고 FALSE는 실패를 의미합니다. 작업이 없으면 호출이 실패합니다.
참고: 작업 정보를 얻기 위해 폴링 방법이 사용됩니다. 작업이 다운로드한 데이터 양에 대한 최종 쿼리는 작업 다운로드가 중지된 후에 정확합니다. 작업은 호출 직후에 중지되지 않으며 작업 상태가 PAUSE가 될 때까지 폴링 후에만 얻을 수 있습니다.

XL_QueryTaskInfoEx

BOOL XL_QueryTaskInfoEx(HANDLE hTask, DownTaskInfo & stTaskInfo);

태스크의 현재 정보를 조회합니다.
매개변수: [in]hTask, 작업 핸들 [out] stTaskInfo, 작업 정보.
DownTaskInfo 참조:

struct DownTaskInfo {
    
     
DOWN_TASK_STATUS stat; //任务状态 
TASK_ERROR_TYPE fail_code; //错误码 
TCHAR szFilename[MAX_PATH]; //文件名 
TCHAR szReserved[MAX_PATH]; 
__int64 nTotalSize; // 该任务总大小(字节) 
__int64 nTotalDownload; // 下载有效字节数(可能存在回退的情况) 
float fPercent; // 下载进度 
int nTotalTime; // 不提供该值 
int nSrcTotal; // 总资源数 
int nSrcUsing; // 可用资源数 
int nReserved1; 
int nReserved2; 
int nReserved3; 
int nReserved; 
__int64 nTotalUpload; // 现不提供该值 
__int64 nDonationP2P; // p2p资源贡献的数据长度 
__int64 nReserved4; 
__int64 nDonationOrgin; // 原始资源贡献的数据长度 
__int64 nDonationP2S; // 镜像资源贡献的数据长度 
__int64 nReserved5; 
__int64 nReserved6; 
int nSpeed; // 速度(字节/秒) 
int nSpeedP2S; // 加速服务器资源的下载速度 
int nSpeedP2P; // peer下载速度 
bool IsOriginUsable; // 原始资源是否可用 
float fReserved; 
int bReserved; 
DWORD reserved[64]; 
}; 

enum DOWN_TASK_STATUS {
    
     
NOITEM = 0, TSC_ERROR, TSC_PAUSE, TSC_DOWNLOAD, TSC_COMPLETE, TSC_STARTPENDING, TSC_STOPPENDING 
};

enum TASK_ERROR_TYPE {
    
     
 TASK_ERROR_UNKNOWN = 0x00, // 未知错误 
 TASK_ERROR_DISK_CREATE = 0x01, // 创建文件失败 
 TASK_ERROR_DISK_WRITE = 0x02, // 写文件失败 
 TASK_ERROR_DISK_READ = 0x03, // 读文件失败 
 TASK_ERROR_DISK_RENAME = 0x04, // 重命名失败 
 TASK_ERROR_DISK_PIECEHASH = 0x05, // 文件片校验失败 
 TASK_ERROR_DISK_FILEHASH = 0x06, // 文件全文校验失败 
 TASK_ERROR_DISK_DELETE = 0x07, // 删除文件失败失败 
 TASK_ERROR_DOWN_INVALID = 0x10, // 无效的DOWN地址 
 TASK_ERROR_PROXY_AUTH_TYPE_UNKOWN = 0x20, // 代理类型未知 
 TASK_ERROR_PROXY_AUTH_TYPE_FAILED = 0x21, // 代理认证失败 
 TASK_ERROR_HTTPMGR_NOT_IP = 0x30, // http下载中无ip可用 
 TASK_ERROR_TIMEOUT = 0x40, // 任务超时 
 TASK_ERROR_CANCEL = 0x41, // 任务取消 
 TASK_ERROR_TP_CRASHED= 0x42, // MINITP崩溃 
 TASK_ERROR_ID_INVALID = 0x43, // TaskId 非法 
};

返回值: TRUE성공을 나타내고, FALSE실패를 나타냅니다.
说明: IsOriginUsable, 원본 리소스의 사용 가능 여부는 Boolean 매개 변수이지만 원본 리소스에 대한 원본 연결은 시간이 많이 걸리는 작업이므로 중간에는 원본 리소스가 유효한지 여부를 알 수 없습니다. 이 파라미터의 초기 상태는 false이므로 원본 리소스는 유효하지만 작업 시작 시에는 이 파라미터가 false인 문제가 있습니다. 상위 레이어에서 이 값을 사용하는 경우 비즈니스 로직에 따라 처리해야 합니다.

XL_DelTemp파일

BOOL XL_DelTempFile(DownTaskParam &stParam)

작업의 임시 파일을 삭제합니다. 다운로드 엔진은 다운로드된 데이터를 저장하기 위해 확장자가 .td 및 .td.cfg인 파일을 생성합니다.
매개변수: [in]stParam, 작업 매개변수는 작업 생성 시 매개변수를 참조합니다. 하지만 여기서는 파일이 저장된 디렉터리와 파일 이름만 필요합니다.
반환 값: TRUE는 성공을 의미하고 FALSE는 실패를 의미합니다.
참고: 파일 이름은 임시 파일 접미사 없이 실제로 디스크에 저장된 마지막 파일 이름입니다. 최종 저장되는 파일 이름은 생성된 작업과 다르기 때문에 파일 이름은 작업 정보를 쿼리하여 반환된 파일 이름을 기준으로 해야 합니다. 저장경로에 동일한 파일명이 이미 존재하는 경우 최종 저장된 파일명은 자동으로 파일명.zip → 파일명(1).zip으로 변경됩니다. 비동기적으로 실행됩니다.

XL_SetSpeedLimit

무효 XL_SetSpeedLimit(INT32 nKBps)

최대 다운로드 속도를 설정합니다.
매개변수: [in]nKBps, 속도 상한값
설명: 비동기 실행

XL_SetProxy

BOOL XL_SetProxy(DOWN_PROXY_INFO &stProxyInfo)

다운로드 에이전트, 글로벌 태스크 에이전트 정보를 설정합니다.
매개변수: [in] stProxyIfno 프록시 정보
DOWN_PROXY_INFO 참조:

enum DOWN_PROXY_TYPE {
    
     
PROXY_TYPE_IE = 0, 
PROXY_TYPE_HTTP = 1, 
PROXY_TYPE_RESERVED= 2, //不支持该代理 
PROXY_TYPE_SOCK5 = 3, 
PROXY_TYPE_UNKOWN = 255, 
}; 
enum DOWN_PROXY_AUTH_TYPE {
    
     PROXY_AUTH_NONE =0, PROXY_AUTH_AUTO, PROXY_AUTH_BASE64, PROXY_AUTH_NTLM, PROXY_AUTH_DEGEST, PROXY_AUTH_UNKOWN, }; struct DOWN_PROXY_INFO {
    
     BOOL bIEProxy; BOOL bProxy; DOWN_PROXY_TYPE stPType; DOWN_PROXY_AUTH_TYPE stResverd; TCHAR szHost[2048]; INT32 nPort; TCHAR szUser[50]; TCHAR szPwd[50]; TCHAR szDomain[2048]; };

반환 값: TRUE는 성공을 의미하고 FALSE는 실패를 의미합니다. 잘못된 매개변수가 FALSE를 반환합니다.

XL_SetUserAgent

무효 XL_SetUserAgent(const TCHAR *pszUserAgent)

Http 작업 요청의 UserAgent를 원래 리소스로 설정합니다.
매개 변수: [in] pszUserAgent, 클라이언트 UserAgent 문자열
설명: 이 메서드를 호출한 후 생성된 작업은 새 UserAgent를 사용합니다.

XL_ParseThunderPrivateUrl

BOOL XL_ParseThunderPrivateUrl(const wchar_t *pszThunderUrl, wchar_t *normalUrlBuffer, INT32 bufferLen)

Xunlei 특수 링크는 특정 논리에 따라 일반 URL에서 변환됩니다.
매개변수: [in] pszThunderUrl, Xunlei 특수 체인 URL [out] NormalUrlBuffer, 변환된 일반 URL을 저장하기 위한 버퍼 [out] bufferLen, NormalUrlBuffer의 버퍼 크기, 문자 단위 수 반환 값: TRUE는 성공을 의미, FALSE는 실패를 의미 설명:

함수 독립적이고 다른 기능과 종속성이 없으며 언제든지 단독으로 사용할 수 있습니다.

XL_SetUploadSpeedLimit

무효 XL_SetUploadSpeedLimit(INT32 nTcpKBps, INT32 nOtherKBps)

외부 네트워크와 내부 네트워크의 업로드 속도는 실제 상황에 따라 설정될 수 있습니다.
매개변수: [in] nTcpKBps, 내부 네트워크 업로드 속도, 단위는 KB/s [in] nOtherKBps, 외부 네트워크 업로드 속도, 단위는 KB/s 반환
값: 없음

XL_CreateTaskByURL

핸들 XL_CreateTaskByURL(const wchar_t *url, const wchar_t *path, const wchar_t *fileName, BOOL IsResume)

작업 URL, 경로, 파일 이름으로 작업을 생성합니다.
매개변수: [in] url, 작업 URL, 비워둘 수 없음, 빈 문자 포함, 문자 길이는 2084를 초과할 수 없음 [in] path, 작업 경로, 비워둘 수 없음, 빈 문자 포함, 문자 길이는 260 [in] fileName을 초과할 수 없음 , 작업 파일 이름은 비어 있을 수 없습니다. 빈 문자를 포함하여 문자 길이는 260을 초과할 수 없습니다. [in] IsResume, 재개 작업인지 여부 반환
값: 작업 핸들을 반환합니다.

XL_CreateTaskByThunder

LONG XL_CreateTaskByThunder(wchar_t *pszUrl, wchar_t *pszFileName, wchar_t *pszReferUrl, wchar_t *pszCharSet, wchar_t *pszCookie)

URL 및 파일 이름과 같은 정보를 전달하여 다운로드 작업을 생성하려면 Thunder 7의 새 패널을 당겨보세요.
매개변수: [in] pszUrl, 작업 URL [in] pszFileName, 다운로드하고 저장할 파일 이름 [in] pszReferUrl, 참조 페이지 URL [in] pszCharSet, 현재 웹페이지의 문자 집합 [in] pszCookie, 쿠키 데이터 다운로드에 필요한
반환 값 : 성공 시 0, 실패 시 기타

XL_ForceStopTask

BOOL XL_ForceStopTask(HANDLE hTask)

강제로 작업 일시 중지
매개 변수: [in] hTask, 작업 핸들
반환 값: TRUE는 성공을 의미하고 FALSE는 실패를 의미합니다. 작업이 없으면 호출이 실패합니다.
참고: 대용량 파일을 다운로드하기 위해 UAC가 활성화된 경우 XL_StopTask를 호출하는 데 시간이 오래 걸릴 수 있습니다. 이런 경우 작업을 빠르게 일시 중단해야 하는 경우 XL_ForceStopTask를 호출하면 되지만 디스크에 기록되지 않은 다운로드 데이터가 손실될 수 있습니다.

지침

1. 전역 인터페이스는 스레드로부터 안전하지 않으며 XL_Init 이외의 다른 인터페이스는 함수가 성공적으로 반환된 후 호출되어야 합니다.
2. 작업이 TSC_STARTPENDING 또는 TSC_STOPPENDING 상태인 경우 작업에 대한 작업은 작업 쿼리를 위한 인터페이스만 호출할 수 있습니다. 정보.

인터페이스 로직 설명

작업 비동기 작업

작업 작업은 비동기적으로 수행됩니다. 호출 인터페이스에는 두 가지 작업이 있습니다. 1. 상위 레이어 xldl.dll에서 가상 작업을 작동합니다. 2. 명령 대기열에 관련 작업 명령을 푸시합니다.

인터페이스 레이어에서 수행할 수 있는 작업은 모두 가상 작업이며, 실제 작업은 MiniThunderPlatfom 프로세스에서 생성됩니다. 작업 생성 프로세스: 1.Xldl은 가상 작업을 생성합니다. 2. 작업과 매개변수를 명령 대기열에 푸시합니다. 3. 명령 처리 스레드는 대기열에 있는 명령을 실행하고 MiniThunderPlatfom과 동기적으로 통신합니다. 4. 이후 작업은 가상 작업인 MiniThunderPlatfom에 의해 성공적으로 생성되었습니다. 실제 작업과 매핑될 수 있습니다. 이후 가상 작업에 대한 모든 작업은 실제 작업에 매핑되고 실제 작업은 MiniTP에서 수행됩니다. 태스크 정보 조회 및 태스크 정보 업데이트는 호출자가 주도해야 하며 호출자는 1초마다 이 인터페이스를 호출해야 합니다. 작업 정보 쿼리 및 업데이트 프로세스: 1. 인터페이스를 호출하여 정보를 쿼리할 때 먼저 가상 작업에서 작업 정보를 쿼리합니다. 처음 호출할 때는 정보가 없어야 합니다. 2. 쿼리 작업 및 매개변수를 푸시합니다. 명령 대기열 3. 명령 처리 스레드 대기열에 있는 명령을 실행하고 MiniThunderPlatfom과 동기적으로 통신하는 역할을 담당합니다. 4. 실제 작업 정보를 쿼리한 후 해당 정보를 가상 작업에 저장합니다. 5. 두 번째 쿼리는 작업을 직접 쿼리할 수 있습니다. 정보의 마지막 쿼리입니다. 여기서는 첫 번째 쿼리 작업으로 작업 정보를 얻을 수 없는 상황이 있습니다. 즉, 작업이 일시 중지/시작_보류 상태에 있습니다. 보다 극단적인 경우, 작업 다운로드가 완료되기 전에 쿼리가 호출되지 않은 경우, 작업이 완료된 후 인터페이스가 호출되면 작업 진행률이 0으로 확인됩니다.

하위 프로세스가 비정상적으로 종료되었습니다.

이런 상황은 바람직하지 않지만 불가피하다. MiniThunderPlatfom에 의해 생성된 작업은 하위 프로세스가 비정상적으로 종료된 후 삭제됩니다. 이런 식으로 가상 작업은 실제 작업과의 매핑 관계를 제외하고는 실제로 의미가 없습니다. 이때, 태스크 정보를 조회하면 태스크 오류가 반환되며, 오류 코드는 TASK_ERROR_ID_INVALID(태스크 ID가 유효하지 않음)입니다. 이때 재개 작업을 다시 생성해야 하며 인터페이스는 XL_CreateTask이고 구조의 다른 매개 변수는 일반 작업 생성과 동일하며 IsResume 매개 변수는 TRUE로 설정됩니다.

다른

SDK 파일 설명

SDK에는 총 10개의 바이너리가 있습니다. 바이너리 간의 종속성은 아래 그림에 나와 있습니다.

각 파일의 기능 소개:

파일 이름 기능
xldl.dll MiniTP 인터페이스 내보내기
MiniThunderPlatform.exe 독립적인 프로세스
다운로드_엔진.dll MiniTP 코어 라이브러리
zlib1.dll 통신 데이터 압축
dl_peer_id.dll Thunder 클라이언트 ID 얻기
XLBugReport.exe 캡처된 충돌 보고를 담당합니다.
XLBugHandler.dll XLBugReport.exe를 끌어오는 역할을 담당합니다.
minizip.dll、mini_unzip.dll 압축 파일의 충돌 스택
atl71.dll Microsoft에서 제공하는 라이브러리

Guess you like

Origin blog.csdn.net/sunny_day_day/article/details/128454747