C++ 从 blob URL 下载 audio/video 文件?
C++ download audio/video file from blob URL?
我有一个 Angular 前端和一个由 C++ 驱动的后端。我希望 C++ 后端从前端创建的 blob URL(使用 URL.CreateObjectURL)中获取文件。
我试过使用 URLDownloadToFile:
HRESULT hr = URLDownloadToFile(NULL, theBlobURL, outfilename, 0, NULL);
以及卷曲:
CURL* curl;
FILE* fp;
CURLcode res;
curl = curl_easy_init();
if (curl) {
fp = fopen(outfilename2, "wb");
curl_easy_setopt(curl, CURLOPT_URL, theBlobURL);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
curl_easy_cleanup(curl);
}
这两种方法都适用于传统文件 URL(我使用 this public 文件进行了测试),但我的 blob URL 失败了。 URLDownloadToFile 将“指定的协议未知”作为 HRESULT 和 curl saus“CURLE_COULDNT_RESOLVE_HOST”。
我已经通过浏览器确认 blob URL 在我尝试打开它时仍然可用。
我需要做任何不同的事情来获得 blob 吗?
Remy Lebeau 是正确的,Blob URL 是浏览器私有的。不能在浏览器外下载。
我有一个 Angular 前端和一个由 C++ 驱动的后端。我希望 C++ 后端从前端创建的 blob URL(使用 URL.CreateObjectURL)中获取文件。
我试过使用 URLDownloadToFile:
HRESULT hr = URLDownloadToFile(NULL, theBlobURL, outfilename, 0, NULL);
以及卷曲:
CURL* curl;
FILE* fp;
CURLcode res;
curl = curl_easy_init();
if (curl) {
fp = fopen(outfilename2, "wb");
curl_easy_setopt(curl, CURLOPT_URL, theBlobURL);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
curl_easy_cleanup(curl);
}
这两种方法都适用于传统文件 URL(我使用 this public 文件进行了测试),但我的 blob URL 失败了。 URLDownloadToFile 将“指定的协议未知”作为 HRESULT 和 curl saus“CURLE_COULDNT_RESOLVE_HOST”。
我已经通过浏览器确认 blob URL 在我尝试打开它时仍然可用。
我需要做任何不同的事情来获得 blob 吗?
Remy Lebeau 是正确的,Blob URL 是浏览器私有的。不能在浏览器外下载。