.net,AVFile下载不了文件

            await AVFile.GetFileWithObjectIdAsync(objectId).ContinueWith(t =>
            {
                var file = t.Result;
                file.DownloadAsync().ContinueWith(s =>
                {
                    var dataByte = file.DataByte;
                });
            });

获取的字节一直是0, 我调试发现,GetFileWithObjectIdAsync返回的AVFile中的ObjectId一直为null.

您好,您是在 哪个运行时使用的?
windows phone 还是 windows pc 还是哪个?

我这里无法复现这个问题,请确保

  await AVFile.GetFileWithObjectIdAsync(objectId).ContinueWith(t =>
            {
                var file = t.Result;
                file.DownloadAsync().ContinueWith(s =>
                {
                    var dataByte = file.DataByte;
                });
            });

objectId 这个值在 控制台对应的 AVFile 的文件是有效的,比如你在控制台上传一张图片。

其次,file.DownloadAsync() 函数是直接使用 HTTP 请求直接访问,并没有做分片,如果太大的文件可能会出现报错。

谢谢!但我这里还是有问题。

我截了个图,可以看到,在调用GetFileWithObjectIdAsync(objectId)后,AVFile中的其它数据都已经返回了,如Name, Url等,但是返回的ObjectId是null。

返回的地址:http://ac-Hj2q0k8L.clouddn.com/44ecbae6-a1e8-42fc-a56e-d283c806880d.png
在浏览器中直接打开也是没有问题的,几百K的小文件。

使用的ObjectId: 57072379128fe1005269e6fe, 不知道是不是可以试试。

这个 bug 我们已经注意到了,下周会予以修复。

好的,谢谢!

您好,借题回复……同样遇到了这个问题,DownloadAsync()方法执行后,文件数据为空……

除此之外,为什么用ObjectID获得的AVFile对象,里面的ObjectId是null呢?

最后,不用objectID的话,有什么办法可以对AVFile进行查询?

AVQuery query = new AVQuery("_File");
然后走查询的方法就可以了。

您好,新版本 SDK 将会删除这个方法,但是会在文档中提及如何在 Unity 中下载文件,如何在 Windows 上下载文件,如何在 其他平台下载文件,因为 Unity 和 Windows 是共享代码的,想做到面面俱到有点不现实。File 的 url 都可以在客户端获取,那么在客户端读取一个远端文件的库是很多的,还有很多都做了缓存,功能很强大的库,这个 LeanCloud SDK 内置的话就有点班门弄斧的感觉了。