private static async Task CopyFolderTest(StorageService.StorageServiceClient client) { Console.WriteLine($"\nCalling 'CopyFolder'..."); var request = new CopyFolderRequest() { Source = @"C:\Temp\Data", Target = @"C:\Temp\Data_Temp" }; var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(3)); using var streamingCall = client.CopyFolder(request, cancellationToken: cancellationTokenSource.Token); try { await foreach (var copyItem in streamingCall.ResponseStream.ReadAllAsync(cancellationTokenSource.Token)) { Console.WriteLine($"\tFile copied: {copyItem.FileName}, created at {copyItem.CreationTimestamp.ToDateTime()}"); } } catch (RpcException ex) when(ex.StatusCode == StatusCode.Cancelled) { Console.WriteLine("Stream cancelled."); } }
private static async Task CopyFileTest(StorageService.StorageServiceClient client) { Console.WriteLine($"\nCalling 'CopyFile'..."); var request = new CopyFileRequest() { Source = @"C:\Temp\data.bin", Target = @"C:\Temp\data_copy.bin" }; var result = await client.CopyFileAsync(request); Console.WriteLine($"\tFile {request.Source} copied to {result.Path}"); }
static async Task Main(string[] args) { var httpClientHandler = new HttpClientHandler(); var clientCertificate = new X509Certificate2("Porcupine.Client.pfx", "Test"); httpClientHandler.ClientCertificates.Add(clientCertificate); httpClientHandler.ServerCertificateCustomValidationCallback = (message, certificate, chain, errors) => { return(certificate.Thumbprint == "F349F918CA0FA8D17C00866D5D0A0489ECEAF6A7"); }; var httpClient = new HttpClient(httpClientHandler); var server = "localhost"; if (args.Length == 1) { server = args[0]; } var url = $"https://{server}:5001"; try { Console.WriteLine($"Server {url}"); using var channel = GrpcChannel.ForAddress($"https://{server}:5001", new GrpcChannelOptions { HttpClient = httpClient }); var storageServiceClient = new StorageService.StorageServiceClient(channel); await CopyFileTest(storageServiceClient); await CopyFolderTest(storageServiceClient); var antimalwareServiceClient = new AntimalwareService.AntimalwareServiceClient(channel); await ScanFolderTest(antimalwareServiceClient); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } Console.WriteLine("Press any key to exit..."); Console.ReadKey(); }