public async Task UploadBigFileInSession_ShouldUploadTheFile_OnlyIfCommitIsCalled() { long fileSize = 20000000; MemoryStream fileInMemoryStream = CreateFileInMemoryStream(fileSize); var remoteFileName = GetUniqueName("UploadSession"); var boxFileUploadSessionRequest = new BoxFileUploadSessionRequest() { FolderId = FolderId, FileName = remoteFileName, FileSize = fileSize }; BoxFileUploadSession boxFileUploadSession = await UserClient.FilesManager.CreateUploadSessionAsync(boxFileUploadSessionRequest); BoxSessionEndpoint boxSessionEndpoint = boxFileUploadSession.SessionEndpoints; var uploadPartUri = new Uri(boxSessionEndpoint.UploadPart); var commitUri = new Uri(boxSessionEndpoint.Commit); var listPartsUri = new Uri(boxSessionEndpoint.ListParts); var partSize = boxFileUploadSession.PartSize; long.TryParse(partSize, out var partSizeLong); var numberOfParts = GetNumberOfParts(fileSize, partSizeLong); await UploadPartsInSessionAsync(uploadPartUri, numberOfParts, partSizeLong, fileInMemoryStream, fileSize); // Assert file is not committed/uploaded to box yet Assert.IsFalse(await DoesFileExistInFolder(UserClient, FolderId, remoteFileName)); var allSessionParts = new List <BoxSessionPartInfo>(); var boxSessionParts = await UserClient.FilesManager.GetSessionUploadedPartsAsync(listPartsUri, null, null, true); foreach (var sessionPart in boxSessionParts.Entries) { allSessionParts.Add(sessionPart); } var sessionPartsForCommit = new BoxSessionParts() { Parts = allSessionParts }; var uploadedFile = await UserClient.FilesManager.CommitSessionAsync(commitUri, Helper.GetSha1Hash(fileInMemoryStream), sessionPartsForCommit); // Assert file is committed/uploaded to box after commit Assert.IsTrue(await DoesFileExistInFolder(UserClient, FolderId, remoteFileName)); await DeleteFile(uploadedFile.Id); }
public async Task UploadFileInSession_AbortRequest_FileNotCommmited() { long fileSize = 50000000; MemoryStream fileInMemoryStream = GetBigFileInMemoryStream(fileSize); string remoteFileName = "UploadedUsingSession-" + DateTime.Now.TimeOfDay; string parentFolderId = "0"; BoxFileUploadSessionRequest boxFileUploadSessionRequest = new BoxFileUploadSessionRequest() { FolderId = parentFolderId, FileName = remoteFileName, FileSize = fileSize }; // Create Upload Session BoxFileUploadSession boxFileUploadSession = await _client.FilesManager.CreateUploadSessionAsync(boxFileUploadSessionRequest); BoxSessionEndpoint boxSessionEndpoint = boxFileUploadSession.SessionEndpoints; Uri abortUri = new Uri(boxSessionEndpoint.Abort); Uri uploadPartUri = new Uri(boxSessionEndpoint.UploadPart); string partSize = boxFileUploadSession.PartSize; long partSizeLong; long.TryParse(partSize, out partSizeLong); int numberOfParts = UploadUsingSessionInternal.GetNumberOfParts(fileSize, partSizeLong); // Upload parts in the session await UploadPartsInSessionAsync(uploadPartUri, numberOfParts, partSizeLong, fileInMemoryStream, fileSize); // Assert file is not committed/uploaded to box yet Assert.IsFalse(await DoesFileExistInFolder(parentFolderId, remoteFileName)); // Abort await _client.FilesManager.DeleteUploadSessionAsync(abortUri); // Assert file is not committed/uploaded to box Assert.IsFalse(await DoesFileExistInFolder(parentFolderId, remoteFileName)); }
public async Task UploadFileInSession_CommitSession_FilePresent() { long fileSize = 50000000; MemoryStream fileInMemoryStream = GetBigFileInMemoryStream(fileSize); string remoteFileName = "UploadedUsingSession-" + DateTime.Now.TimeOfDay; string parentFolderId = "0"; BoxFileUploadSessionRequest boxFileUploadSessionRequest = new BoxFileUploadSessionRequest() { FolderId = parentFolderId, FileName = remoteFileName, FileSize = fileSize }; // Create Upload Session BoxFileUploadSession boxFileUploadSession = await _client.FilesManager.CreateUploadSessionAsync(boxFileUploadSessionRequest); BoxSessionEndpoint boxSessionEndpoint = boxFileUploadSession.SessionEndpoints; Uri listPartsUri = new Uri(boxSessionEndpoint.ListParts); Uri uploadPartUri = new Uri(boxSessionEndpoint.UploadPart); Uri commitUri = new Uri(boxSessionEndpoint.Commit); string partSize = boxFileUploadSession.PartSize; long partSizeLong; long.TryParse(partSize, out partSizeLong); int numberOfParts = UploadUsingSessionInternal.GetNumberOfParts(fileSize, partSizeLong); // Upload parts in the session await UploadPartsInSessionAsync(uploadPartUri, numberOfParts, partSizeLong, fileInMemoryStream, fileSize); // Assert file is not committed/uploaded to box yet Assert.IsFalse(await DoesFileExistInFolder(parentFolderId, remoteFileName)); // Get upload parts (1 by 1) for Integration testing purposes List <BoxSessionPartInfo> allSessionParts = new List <BoxSessionPartInfo>(); // var boxSessionParts = await _client.FilesManager.GetSessionUploadedPartsAsync(listPartsUri, 0, 2, true); var boxSessionParts = await _client.FilesManager.GetSessionUploadedPartsAsync(listPartsUri, null, null, true); foreach (var sessionPart in boxSessionParts.Entries) { allSessionParts.Add(sessionPart); } /* w/o autopaging * var boxSessionParts = await _client.FilesManager.GetSessionUploadedPartsAsync(listPartsUri, 0, 1); * allSessionParts.AddRange(boxSessionParts.Entries); * * while (allSessionParts.Count < boxSessionParts.TotalCount) * { * boxSessionParts = await _client.FilesManager.GetSessionUploadedPartsAsync(listPartsUri, allSessionParts.Count, 1); * allSessionParts.AddRange(boxSessionParts.Entries); * } */ BoxSessionParts sessionPartsForCommit = new BoxSessionParts() { Parts = allSessionParts }; // Commit await _client.FilesManager.CommitSessionAsync(commitUri, Helper.GetSha1Hash(fileInMemoryStream), sessionPartsForCommit); // Assert file is committed/uploaded to box Assert.IsTrue(await DoesFileExistInFolder(parentFolderId, remoteFileName)); // Delete file string fileId = await GetFileId(parentFolderId, remoteFileName); if (!string.IsNullOrWhiteSpace(fileId)) { await _client.FilesManager.DeleteAsync(fileId); } // Assert file has been deleted from Box Assert.IsFalse(await DoesFileExistInFolder(parentFolderId, remoteFileName)); }