2017-03-11 25 views
0

使用Xamarin.Forms,我在UWP上使用OneDrive SDK來訪問OneDrive,並且它運行良好。我上傳/下載小的數據文件,我使用下面的代碼更改文件的LastModifiedDate:Android Xamarin.Auth 1.2.2如何更新上傳的雲存儲文件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或是否有另一種方式做到這一點? 感謝您的幫助。

回答

0

簡短的回答是沒有。 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並嘗試從文檔中獲取該信息。

+0

感謝您的幫助。我使用Xamarin.Auth的OAuth2Request來上傳文件,所以我認爲可能有辦法使用OAuth2Request來更新文件修改日期。我嘗試了Android的OneDriveSDK,但我無法讓Microsoft.OneDriveSDK.Authentication在Android上工作,所以我想如果我可以在Android中使用Xamarin.Auth來完成這一切,那麼我也可以使用Xamarin.Auth來處理UWP,並消除OneDriveSDK或者如果我可以使用Xamarin.Auth身份驗證帳戶作爲OneDriveClient,那麼我可以使用OneDriveSDK進行所有身份驗證,而且這樣做會很好。 – MV12

+0

抱歉,延遲。按照您的建議,我重新訪問了onedrive.com文檔並找到了一個我沒有閱讀過的頁面。根據https://dev.onedrive.com/items/upload_post.htm,有一種方法可以使用分段上傳更改lastModifiedDateTime。我試圖創建一個可以用來更新lastModifiedDateTime的字符串。我的問題是,我不知道該更新字符串的位置。它應該放在身體中還是加入到尿液的末尾?我嘗試了兩種方法,但都取得了一些成功我大部分時間都收到不好的要求。 – MV12

相關問題