我已使用 Xamarin.Auth 1.5 从 OneDrive 和 Dropbox 成功上传和下载文件以及下载文件元数据。我已经为 Google Drive 完成了所有这些操作,除非我上传文件时无法命名文件(显示为无标题),并且文件上传后我无法更新文件。
下面是最初上传文件(创建)的代码: 文件的数据在流中。范围是https://www.googleapis.com/auth/drive。
URI uri = new Uri("https://www.googleapis.com/upload/drive/v3/files?uploadType=media");
OAuth2Request requestUpload = new OAuth2Request("POST", uri, null, (Account)authAccount);
requestUpload.AddMultipartData("body", stream, "application/json", dataFileName);
var responseUpload = await requestUpload.GetResponseAsync();
为了更新文件,我尝试在文件(例如 files/fileid)之后将 fileid 添加到 url,我收到 System.Net.HttpStatusCode.NotFound 并且我知道 fileid 是正确的,因为我能够使用下载文件相同的文件ID。使用 fileid,我也尝试使用方法 PATCH,但收到 Xamarin.Auth 错误。
为了重命名文件,我尝试使用两个 AddMultipartData,一个用于数据,另一个用于具有正确格式的元数据(名称),并且所有 AddMultipartData 元数据都与正文数据一起添加到文件中。我尝试在一个 AddMultipartData 中添加数据和元数据,结果与使用两个相同。
对于重命名和更新,我尝试了所有类型的组合,例如不同的uploadTypes,没有/upload,方法PUT,IDictionary 参数,仅举几例。
有谁知道如何做到这一点?感谢您的任何帮助或建议。