无法使用 UnityWebRequest 下载大小超过 63kb 的文件

not able to download file with size more than 63kb using UnityWebRequest

我正在尝试从 url 下载资产包,但在下载 63kb 后请求继续取消。任何人都可以向我解释为什么会发生这种情况吗?

我的代码:

public IEnumerator DL()
{
    string downloadlink = "https://drive.google.com/file/d/1OGyrB4-MQfo-HVom9ENvV4dn312_wL4Q/view?usp=sharing";
    string filepath = Application.persistentDataPath + "/electroplatingNN";
    //Download
    UnityWebRequest dlreq = new UnityWebRequest(downloadlink);
    dlreq.downloadHandler = new DownloadHandlerFile(filepath);
    dlreq.timeout = 15;

    UnityWebRequestAsyncOperation op = dlreq.SendWebRequest();

    while (!op.isDone)
    {
        //here you can see download progress
        Debug.Log(dlreq.downloadedBytes / 1000 + "KB");

        yield return null;
    }

    if (dlreq.isNetworkError || dlreq.isHttpError)
    {
        Debug.Log(dlreq.error);
    }
    else
    {
        Debug.Log("download success");
    }

    dlreq.Dispose();

    yield return null;

}

正如评论中已经提到的,问题不在 UnityWebrequest 而是 Google Drive 不会像您预期的那样简单地下载您的文件。

相反,您下载的数据实际上只是允许您下载它的网页。如果我只是在浏览器中打开您的文件,我会得到一个如下所示的页面

我现在可以下载你的文件。


this or this 这样的包实现了在 Unity 中从 Google 驱动器 API 实际下载文件所必需的东西。