Genel Bakış

Runtime Files Downloader, çalışma zamanında HTTP / HTTPS üzerinden dosya indirmek için bir eklentidir.
Nasıl Kullanılır
Bir dosyayı depolamaya kaydetmeniz gerekiyorsa, DownloadFileToStorage işlevini çağırmanız gerekir.
- 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);
}));
Eğer dosyayı kaydetmeniz gerekmiyorsa, sadece indirilen içeriğe erişmek istiyorsanız, DownloadFileToMemory fonksiyonunu çağırmanız gerekir.
- 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());
}));
İsteğe bağlı olarak, Content Type alanına bir MIME türü girerek indirilecek dosyanın türünü belirtebilirsiniz.
En yaygın MIME türlerinin bir listesi burada bulunmaktadır.
İndirme başladıktan sonra, CancelDownload işlevini kullanarak iptal edebilirsiniz.
- Blueprint
- C++

// Assuming Downloader is a UE reference to a UFileToStorageDownloader or UFileToMemoryDownloader object
Downloader->CancelDownload();
Lütfen dikkat: UE 5.4'ten başlayarak, Timeout parametresi, indirme işleminin tamamının alınan toplam süresi Timeout değerini aşarsa, isteği indirme sırasında iptal edecek şekilde davranır, bu bir anlamda UE'deki bir hatadır. Lütfen ya büyük bir değer belirtin (örneğin 3600 saniye, yani 1 saat) ya da Timeout'u tamamen devre dışı bırakmak için sıfır olarak belirtin.
Ek Kaynaklar
- Fab'da Edinin
- Discord destek sunucusu
- Eklenti Desteği & Özel Geliştirme: [email protected] (takımlar ve organizasyonlar için özel çözümler)