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 是浏览器私有的。不能在浏览器外下载。