如何在OneDrive SDK中获取新复制的项ID?



下面是我用来将项目从文件夹 A 复制到 B 的代码。一切进展顺利。

var client = GetOneDriveClient();
var response = await client.Drive.Items["FILE_ID"].Copy("NEW_FILE_NAME", new ItemReference { Id = "COPY_TO_FOLDER_ID" }).Request().PostAsync();
//below line throws an error
var item = response.PollForOperationCompletionAsync(null, CancellationToken.None);

我能够从response变量中看到monitorUrl,并且文件已成功复制,我可以通过监视器 URL 了解该文件。

我想知道至少如何读取监视器 URL,因为它是一个私有变量。

下面是我现在使用的图形 API 代码,它 100% 成功运行。

我现在能够从监视器 URL 获取监视器 URL 和项目 ID。我正在为将来可能需要它的人发布我的代码。

var client = new RestClient(ONEDRIVE_ENDPOINT + $"/drives/{driveID}/items/{fileID}/copy");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("Authorization", "Bearer " + GetAccessToken());
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Accept", "application/json");
var body = new { parentReference = new { id = copyToFolderID }, name = newFileName };
request.AddJsonBody(body);
var response = client.Execute(request);
var monitorURI = new Uri(response.Headers.Where(x => x.Name == "Location").First().Value.ToProperString());
var newFileID = monitorURI.Segments.Last();

最新更新