Astuces
Richard Markiewicz

Bonjour, je m'appelle Richard et je fais partie de l'équipe Architecture de Devolutions. Avec près de 20 ans d'expérience dans le domaine, je me spécialise dans l'intégration du nuage et de nos clients natifs multiplateformes. Être un chef d'équipe à distance me donne de nombreuses pistes de solutions pour rendre nos produits encore plus fiables et efficaces.

Copier-coller à l’intérieur et à l’extérieur des sessions RDP intégrées pour RDM Mac

Si vous ne connaissez pas déjà Larry Gordon Tesler, vous risquez de vous sentir sous-performant quand vous apprendrez qui il est. Une page Wikipédia entière est dédiée à ses réalisations chez Apple, Amazon et Yahoo. Il a développé et inventé certains concepts fondamentaux de tous les ordinateurs personnels modernes, dont WYSIWYG (« What you see is what you get »), le premier « navigateur », ou encore le copié-collé. Avez-vous déjà calculé le nombre de copiés-collés que vous faites chaque jour? Eh bien, c’est à Larry que vous le devez.

À propos du presse-papiers RDP

RDP a une prise en charge intégrée du presse-papiers qui vous permet de copier et coller entre votre session locale et un système distant exactement comme si vous l'utilisiez localement. C'est une fonctionnalité vraiment pratique qui prend en charge différents types de presse-papiers, comme le texte enrichi, les images et les fichiers. Vous le savez peut-être déjà, mais les sessions RDP intégrées dans RDM Mac sont construites sur FreeRDP plutôt que sur l’implémentation de Microsoft (qui ne peut pas être intégrée dans une autre application). FreeRDP prend en charge la même fonctionnalité de presse-papiers que le client Microsoft officiel, mais jusqu'à présent, RDM Mac n'intégrait que les formats de texte de base.

C’est pourquoi on est très heureux de vous annoncer qu’on a fait l’ajout de la prise en charge de plusieurs nouveaux types de presse-papiers, dont l'une des fonctionnalités les plus demandées : copier-coller des fichiers!

Transférer des fichiers par le presse-papiers

À partir de la version RDM Mac 2022.1.13, si vous souhaitez transférer un fichier entre votre ordinateur et un système à distance connecté par un type de session RDP intégrée, vous n’aurez qu’à le copier-coller! C’est très simple : il vous suffit de copier le fichier sur votre système et de le coller sur l'ordinateur distant ou vice versa. Cette fonctionnalité est encore en version bêta et est limitée. Par exemple, vous ne pouvez transférer qu'un seul fichier à la fois (pas un répertoire ou une liste de fichiers). Et vous pouvez seulement transférer des fichiers entre votre ordinateur et la session à distance (en d’autres mots, vous ne pouvez pas copier un fichier dans une session et le coller dans une autre).

Le protocole RDP permet de contourner entièrement le presse-papiers si le fichier copié est accessible sur un lecteur mappé (ce qui peut améliorer les performances), mais il n’est pas encore pris en charge. La taille maximale des fichiers que vous pouvez transférer est de 4 Go (2 Go pour certaines versions de serveur). C’est une limitation technique du protocole RDP. Dites-nous ce que vous pensez des modifications. Au fil du temps, nous allons déployer des améliorations sur macOS, de même que la prise en charge de cette fonctionnalité sur RDM Linux et Windows (lorsque FreeRDP est utilisé).

Les détails importants

La fonctionnalité de transfert de fichiers par copier-coller a mis du temps à aboutir à cause des défis techniques de macOS. La plupart des presse-papiers modernes fonctionnent avec le « rendu à retardement ». Ça veut dire que lorsque vous copiez quelque chose dans le presse-papiers, le système annonce les données à d'autres applications, mais les données ne sont pas transférées tant qu’elles ne sont pas collées. Quand vous copiez un fichier sur le système distant, ses informations sont ajoutées au presse-papiers, mais les données ne circulent pas tant que vous ne les collez pas localement.

Le problème, c’est que le Finder de macOS ne permet pas de coller un fichier à moins qu'il existe déjà sur le disque. En temps normal (et sur d'autres plateformes), on pourrait contourner le problème en utilisant un système de fichiers virtuels (de l'anglais virtual file system ou VFS) qui résume l'accès aux fichiers. Sauf que les systèmes de fichiers virtuels ne fonctionnent pas sur macOS, parce qu’ils nécessitent habituellement une extension de noyau, une fonction qui n'est plus soutenue par Apple.

Au lieu de ça, lorsque vous copiez un fichier sur le système distant, on crée un fichier temporaire de 0 octet sur le disque et on l'annonce à Finder.app. Quand vous collez, on utilise un API en mode utilisateur pour télécharger le fichier à la volée, avant de laisser le collage se poursuivre à partir de l'emplacement temporaire. Cette approche fonctionne, mais entraine certaines limitations comme celles mentionnées précédemment. On étudie présentement un nouvel ensemble d'API de type VFS sur macOS 11 et plus, qui nous permettrait d’offrir une intégration plus transparente.

Articles similaires

Lire plus d'articles dans la section Astuces