public async Task PreflightCheckNewVersion_ForValidNewFileVersion_ShouldReturnSuccess() { var uploadedFile = await CreateSmallFile(FolderId); var request = new BoxPreflightCheckRequest { Id = uploadedFile.Id, Name = uploadedFile.Name, Size = 5000000 }; var preflightCheck = await UserClient.FilesManager.PreflightCheckNewVersion(uploadedFile.Id, request); Assert.IsTrue(preflightCheck.Success); }
public async Task PreflightCheck_ForValidFile_ShouldReturnSuccess() { var request = new BoxPreflightCheckRequest { Name = GetUniqueName("file"), Parent = new BoxRequestEntity() { Id = FolderId } }; var preflightCheck = await UserClient.FilesManager.PreflightCheck(request); Assert.IsTrue(preflightCheck.Success); }
/// <summary> /// Verify that a file will be accepted by Box before you send all the bytes over the wire. /// </summary> /// <param name="preflightCheckRequest"></param> /// <returns></returns> public async Task <BoxPreflightCheck> PreflightCheck(BoxPreflightCheckRequest preflightCheckRequest) { preflightCheckRequest.ThrowIfNull("preflightCheckRequest") .Name.ThrowIfNullOrWhiteSpace("preflightCheckRequest.Name"); preflightCheckRequest.Parent.ThrowIfNull("preflightCheckRequest.Parent") .Id.ThrowIfNullOrWhiteSpace("preflightCheckRequest.Parent.Id"); BoxRequest request = new BoxRequest(_config.FilesPreflightCheckUri) .Method(RequestMethod.Options); request.Payload = _converter.Serialize(preflightCheckRequest); request.ContentType = Constants.RequestParameters.ContentTypeJson; IBoxResponse <BoxPreflightCheck> response = await ToResponseAsync <BoxPreflightCheck>(request).ConfigureAwait(false); return(response.ResponseObject); }
/// <summary> /// Verify that a new version of a file will be accepted by Box before you send all the bytes over the wire. /// </summary> /// <param name="fileId"></param> /// <param name="preflightCheckRequest"></param> /// <returns></returns> public async Task <BoxPreflightCheck> PreflightCheckNewVersion(string fileId, BoxPreflightCheckRequest preflightCheckRequest) { if (preflightCheckRequest.Size <= 0) { throw new ArgumentException("Size in bytes must be greater than zero (otherwise preflight check for new version would always succeed)", "sizeinBytes"); } BoxRequest request = new BoxRequest(new Uri(string.Format(Constants.FilesPreflightCheckNewVersionString, fileId))) .Method(RequestMethod.Options); request.Payload = _converter.Serialize(preflightCheckRequest); request.ContentType = Constants.RequestParameters.ContentTypeJson; IBoxResponse <BoxPreflightCheck> response = await ToResponseAsync <BoxPreflightCheck>(request).ConfigureAwait(false); response.ResponseObject.Success = response.Status == ResponseStatus.Success; return(response.ResponseObject); }
protected async Task <BoxFile> UploadFile(string path, string parentId = "", string fileName = "", string fileId = "", bool isNewVersion = false, bool idOnly = false) { var boxClient = base.ConfigureBoxClient(oneCallAsUserId: this._asUser.Value(), oneCallWithToken: base._oneUseToken.Value()); path = GeneralUtilities.TranslatePath(path); var file = new FileInfo(path); if (string.IsNullOrEmpty(fileName)) { fileName = file.Name; } if (string.IsNullOrEmpty(parentId)) { parentId = "0"; } if (file.Length >= MINIUMUM_CHUNKED_UPLOAD_FILE_SIZE && isNewVersion) { return(await this.ChunkedUpload(path, fileName, parentId, file.Length, boxClient, fileId, true, idOnly : idOnly)); } else if (file.Length >= MINIUMUM_CHUNKED_UPLOAD_FILE_SIZE) { return(await this.ChunkedUpload(path, fileName, parentId, file.Length, boxClient, idOnly : idOnly)); } else { using (var fileStream = File.Open(path, FileMode.Open)) { var fileRequest = this.ConfigureFileRequest(parentId: parentId, fileName: fileName); if (isNewVersion) { if (string.IsNullOrEmpty(fileId)) { throw new Exception("A file ID is required for this command."); } var preflightCheckRequest = new BoxPreflightCheckRequest() { Name = fileName, Size = file.Length, Parent = new BoxItemRequest() { Id = parentId } }; var preflight = await boxClient.FilesManager.PreflightCheckNewVersion(fileId, preflightCheckRequest); if (preflight.Success) { using (var sha1 = SHA1.Create()) { var checksum = sha1.ComputeHash(fileStream); return(await boxClient.FilesManager.UploadNewVersionAsync(fileName, fileId, fileStream, uploadUri : preflight.UploadUri, contentMD5 : checksum)); } } else { throw new Exception("Preflight check failed."); } } else { var preflightCheckRequest = new BoxPreflightCheckRequest() { Name = fileName, Size = file.Length, Parent = new BoxItemRequest() { Id = parentId } }; var preflight = await boxClient.FilesManager.PreflightCheck(preflightCheckRequest); if (preflight.Success) { using (var sha1 = SHA1.Create()) { var checksum = sha1.ComputeHash(fileStream); return(await boxClient.FilesManager.UploadAsync(fileRequest, fileStream, uploadUri : preflight.UploadUri, contentMD5 : checksum)); } } else { throw new Exception("Preflight check failed."); } } } } }