개요
Runtime Files Downloader는 실행 시 HTTP / HTTPS를 통해 파일을 다운로드할 수 있는 플러그인입니다.
사용 방법
스토리지에 파일을 저장해야 하는 경우, DownloadFileToStorage 함수를 호출해야 합니다.
- Blueprint
- C++
UFileToStorageDownloader::DownloadFileToStorage(TEXT("https://example.com/File.zip"), TEXT("C:/Folder/File.zip"), 15.0f, TEXT(""), false,
FOnDownloadProgressNative::CreateLambda([](int64 BytesReceived, int64 ContentSize, float ProgressRatio)
{
UE_LOG(LogTemp, Log, TEXT("Download progress: %f"), ProgressRatio);
}), FOnFileToStorageDownloadCompleteNative::CreateLambda([](EDownloadToStorageResult Result, const FString& SavedPath, UFileToStorageDownloader* Downloader)
{
UE_LOG(LogTemp, Log, TEXT("Download complete, result: %s, saved path: %s"), *UEnum::GetValueAsString(Result), *SavedPath);
}));
파일을 저장할 필요가 없고 다운로드된 콘텐츠에만 접근하고 싶다면, DownloadFileToMemory 함수를 호출해야 합니다.
- BluePrint
- C++
UFileToMemoryDownloader::DownloadFileToMemory(TEXT("https://example.com/File.zip"), 15.0f, TEXT(""), false,
FOnDownloadProgressNative::CreateLambda([](int64 BytesReceived, int64 ContentSize, float ProgressRatio)
{
UE_LOG(LogTemp, Log, TEXT("Download progress: %f"), ProgressRatio);
}), FOnFileToMemoryDownloadCompleteNative::CreateLambda([](const TArray64<uint8>& DownloadedContent, EDownloadToMemoryResult Result, UFileToMemoryDownloader* Downloader)
{
UE_LOG(LogTemp, Log, TEXT("Download complete, result: %s, DownloadedContent size: %d"), *UEnum::GetValueAsString(Result), DownloadedContent.Num());
}));
선택적으로, Content Type
필드에 MIME 유형을 입력하여 다운로드할 파일 유형을 지정할 수 있습니다.
가장 일반적인 MIME 유형 목록은 여기에서 확인할 수 있습니다.
다운로드가 시작된 후에는 CancelDownload 함수를 사용하여 취소할 수 있습니다.
- Blueprint
- C++
// Assuming Downloader is a UE reference to a UFileToStorageDownloader or UFileToMemoryDownloader object
Downloader->CancelDownload();
UE 5.4부터 Timeout 매개변수가 다운로드 자체 중에 요청을 취소하는 방식으로 작동하는데, 이는 다운로드에 소요된 전체 시간이 Timeout을 초과할 경우 발생하며, UE의 약간의 버그입니다. 3600초(1시간)와 같은 큰 값을 지정하거나 Timeout을 완전히 비활성화하려면 0으로 지정하십시오.