Android Xamarin.Auth 1.2.2如何更新上传的云存储文件LastModifiedDate?

时间:2017-03-11 19:25:32

标签: xamarin xamarin.android xamarin.forms xamarin.auth

使用Xamarin.Forms,我在UWP上使用OneDrive SDK来访问OneDrive,它运行良好。我上传/下载小数据文件,我使用以下代码更改文件的LastModifiedDate:

Item itemUpdate1 = new Item();
itemUpdate1.FileSystemInfo = new Microsoft.OneDrive.Sdk.FileSystemInfo {LastModifiedDateTime = lastModifiedDateTime };
await oneDriveClient1.Drive.Items[item1.Id].Request().UpdateAsync(itemUpdate1);

在Android上,我使用Xamarin.Auth访问OneDrive,我无法弄清楚如何更新文件的LastModifiedDate。我使用以下代码登录并上传文件:

var auth = new OAuth2Authenticator(clientId: clientId, scope: storageScopes1, authorizeUrl: new System.Uri("https://login.live.com/oauth20_authorize.srf"),
  redirectUrl: new System.Uri("https://login.live.com/oauth20_desktop.srf"));

System.Uri dataFileUri = new System.Uri("https://api.onedrive.com/v1.0/drive/special/approot:/" + dataFileName1 + ":/content");
var requestUpload = new OAuth2Request("PUT", dataFileUri, null, account);

我想知道OAuth2Request是否可用于更新文件的LastModifiedDate,或者是否有其他方法可以执行此操作? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

简短的回答是否定的。 Xamarin.Auth只处理您的应用程序和OneDrive Rest Api之间的身份验证。

如果要在OneDrive中修改文件的任何属性,则需要像在UWP项目中一样使用OneDrive SDK for Android,或者使用Rest API直接执行这些修改,就像上传文件。

更新1

System.Uri dataFileUri = new System.Uri("https://api.onedrive.com/v1.0/drive/special/approot:/" + dataFileName1 + ":/content");
var requestUpload = new OAuth2Request("PUT", dataFileUri, null, account);

正如您在上面的代码中所做的那样,如果您可以获取OneDrive REST API的端点来修改文件的属性(例如LastModifiedDate),那么您可以使用OAuth2Request来完成。

转到OneDrive Dev Portal并尝试从文档中获取该信息。