【问题标题】:Android Xamarin.Auth 1.2.2 How to Update Uploaded Cloud Storage File LastModifiedDate?Android Xamarin.Auth 1.2.2 如何更新上传的云存储文件 LastModifiedDate?
【发布时间】:2017-03-12 08:26:48
【问题描述】:

使用 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 或者是否有其他方法可以做到这一点? 感谢您的帮助。

【问题讨论】:

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


    【解决方案1】:

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

    如果您想修改 OneDrive 中文件的任何属性,您需要像在 UWP 项目中那样使用适用于 Android 的 OneDrive SDK,或者像上传文件一样直接使用 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 并尝试从文档中获取该信息。

    【讨论】:

    • 感谢您的帮助。我正在使用 Xamarin.Auth 的 OAuth2Request 上传文件,所以我认为可能有一种方法可以使用 OAuth2Request 来更新文件修改日期。我尝试了适用于 android 的 OneDriveSDK,但我无法让 Microsoft.OneDriveSDK.Authentication 适用于 Android,所以我想如果我可以在 Android 中使用 Xamarin.Auth 来完成这一切,那么我也可以将 Xamarin.Auth 用于 UWP 并消除OneDriveSDK 或者如果我可以将 Xamarin.Auth 身份验证帐户用作 OneDriveClient,那么我可以将 OneDriveSDK 用于除身份验证之外的所有内容,这样会很好用。
    • 抱歉耽搁了。根据您的建议,我重新访问了 onedrive.com 文档,发现了一个我没有阅读过的页面。根据dev.onedrive.com/items/upload_post.htm,有一种方法可以使用Multipart Upload 来更改lastModifiedDateTime。我试图创建一个可用于更新 lastModifiedDateTime 的字符串。我的问题是我不知道在哪里放置这个更新字符串。它应该放在正文中还是只是添加到 uri 的末尾?我尝试了两种方式,但收效甚微。我大部分时间都收到错误的请求。
    猜你喜欢
    • 1970-01-01
    • 2019-05-06
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 2018-10-10
    • 2019-06-09
    相关资源
    最近更新 更多