示例#1
0
        internal async Task Connect(ConnectionInfo connectionInfo, Session session, ILogger logger)
        {
            var address = connectionInfo.Network == "unix"
                ? $"unix://{connectionInfo.Address}"
                : connectionInfo.Address;

            var channel = new Channel(address, ChannelCredentials.Insecure);
            await channel.ConnectAsync();

            var interceptedChannel = channel.Intercept(new ExceptionLoggingInterceptor(logger));

            Console.Error.WriteLine("[DEBUG] GRPC Channel Connected");
            Whisper    = new WhisperClient(interceptedChannel, session, logger);
            Clipboard  = new ClipboardClient(interceptedChannel, session, logger);
            Filesystem = new FilesystemClient(interceptedChannel, session, logger);
            Cursor     = new CursorClient(interceptedChannel, session, logger);
            Keyboard   = new KeyboardClient(interceptedChannel, session, logger);
            Network    = new NetworkClient(interceptedChannel, session, logger);
            Process    = new ProcessClient(interceptedChannel, session, logger);
            Browser    = new BrowserClient(interceptedChannel, session, logger);
            Hover      = new HoverClient(interceptedChannel, session, logger);
            Window     = new WindowClient(interceptedChannel, session, logger);
            Storage    = new StorageClient(interceptedChannel, session, logger);
            UI         = new UIClient(interceptedChannel, session, logger);
        }
示例#2
0
        /// <summary>
        /// Upload files to SharePoint. For now, assumes directory structure already exists.
        /// </summary>
        /// <param name="hostname">Hostname for your SharePoint site.</param>
        /// <param name="team">SharePoint team.</param>
        /// <param name="root">Directory to search for files to upload.</param>
        /// <param name="glob">Pattern to search inside filePath.</param>
        /// <param name="target">Target directory inside the SharePoint site.</param>
        /// <param name="token">
        /// (Optional) AAD access token for auth.
        /// You may obtain this by visiting: https://developer.microsoft.com/en-us/graph/graph-explorer .
        /// </param>
        /// <param name="numFragments">Multiple of 320 KiB to include in each file fragment.</param>
        async static Task Main(
            string hostname,
            string team,
            string root,
            string glob      = "**",
            string target    = "/",
            string token     = "",
            int numFragments = 10)
        {
            // https://github.com/dotnet/runtime/issues/34742
            using var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole());
            var logger = loggerFactory.CreateLogger <Program>();

            var filesClient = new FilesystemClient(root, glob);
            var files       = filesClient.Search();

            var builder     = new GraphClientBuilder(logger);
            var graphClient = await builder.BuildAsync(token);

            var uploadClient = new UploadClient(hostname, team, target, numFragments, graphClient, loggerFactory);

            foreach (var file in files)
            {
                await uploadClient.UploadAsync(file);
            }

            logger.LogInformation("Done uploading files.");
        }