文档中给出的以下方法不能用。
await AVFile.GetFileWithObjectIdAsync("538ed669e4b0e335f6102809").ContinueWith(t =>
{
var file = t.Result;
file.DownloadAsync().ContinueWith(s =>
{
var dataByte = file.DataByte;//获取文件流的byte数组,之后可以做保存,发送等操作。
});
});
报以下错误信息:
Type LeanCloud.AVFile' does not contain a definition forDownloadAsync' and no extension method DownloadAsync' of typeLeanCloud.AVFile' could be found. Are you missing an assembly reference?

测试了一下,DeleteAsync()貌似也不工作,执行完之后,后台相应的文件还存在。

获取到的AVFile的URL也非常奇怪,file:///D:/Front2018_05_07_11_13_47.png ,这个就是我D盘下的一个图片的路径,上传时文件的位置路径。难道new AVFile时的第二个参数Uri是网络路径,如果是这样,既然图片已经放到了网络上,还要上传干嘛。

请说明一下 Unity 的版本和 LeanCloud SDK 版本(包括 .net 版本)

Unity2017.4.0f1 SDK是最新的,基于.Net 4.x的SDK

感觉LeanCloud太多坑,真的很浪费时间,还好只是试用了一下没付费

抱歉 Unity 的文档没有及时更新。
目前 Unity 的 SDK 已经放弃了 download 相关接口,由于「无法确定用户的用途」,所以请在需要下载 AVFile 的时候使用更成熟的解决方案。如下载缓存图片时可以使用 IOS 的 SDWebImage 和 Android 的 Glide。
Unity 的官方推荐是 www。
获取 AVFile 的 url 接口经测试是没有问题的,测试环境 Unity 2017.4.2f2,.Net 4.x SDK v20180302.1。
参考代码:

AVFile.GetFileWithObjectIdAsync("5af25a8c9f545407fc465d8e").ContinueWith(t => {
    Debug.Log(t.Result.Url);
});

这样获取到的URL是这样的:file:///D:/Front2018_05_07_11_13_47.png ,这是个本地路径,上传图片的本地路径,分发到其他电脑上就没法下载了。

一样的方法,但是我获取到的url不对。可能我上传图片的方法有问题,DashBoard中显示的URL也不对,帮我看一下截图中OnUploadFileClicked方法对不对?

你在构造 AVFile 对象时调用构造方法不对,第二个参数如果是 url,则会直接赋值 url。
针对你的需求,应该使用 byte[] 的构造方法,示例代码如下:

Texture2D texture = Resources.Load<Texture2D>("logo");
AVFile file = new AVFile("logo", texture.GetRawTextureData());
file.SaveAsync();

使用你提供的这种方法上传后就可以拿到URL了。非常感谢。希望你们把Unity SDK的文档更新一下,这样会节省很多你们回复的时间。