Bestanden uitwisselen tussen platforms
Iedereen heeft zichzelf wel eens een Office-document via e-mail verstuurd of foto’s via WhatsApp om ze van het ene apparaat naar het andere te krijgen. Er zijn betere manieren, zelfs als de juiste kabel niet voorhanden is en je geen clouddiensten wilt gebruiken.
Een netwerk thuis of op kantoor heeft zijn charme, maar ook een schaduwkant. Het is vaak geen simpele kwestie van Zero Configuration, Automatic Private IP Addressing en Universal Plug and Play. Vooral als je haast hebt, werkt niets zoals het hoort: de gedeelde map is niet te vinden, Windows weigert het wachtwoord goed te keuren, de Mac wil niet meewerken en Linux mist een belangrijke bibliotheek. De volgende artikelen helpen je bij die soms dagelijkse problemen. Dit artikel kijkt naar mogelijke alternatieven voor een netwerkschijf en onderscheidt de technieken om bestanden zonder stress van A naar B te krijgen.
Een groot deel van het verhaal zit daarbij in de specifieke platformoplossingen: wat geldt voor een iOS-apparaat kan niet worden toegepast op een Android-apparaat. En wat werkt met Windows in combinatie met iOS werkt niet noodzakelijkerwijs met macOS en Linux. Daarom lopen we hier even platform voor platform af en gaan we op zoek naar de overeenkomsten. De mogelijkheden variëren daarbij van eenvoudig en meer ad hoc tot een stabiele oplossing voor bestandsuitwisseling. Het kan zijn dat dingen daarbij dubbel voorkomen, maar dat is nu eenmaal zo.
In principe zijn er bij het uitwisselen van bestanden bepaalde minimumeisen. Het is handig als beide deelnemende apparaten achter dezelfde router een gemeenschappelijke verbinding hebben met internet. Dan heb je meestal niet te maken met netwerkproblemen. Die router zal in het ideale geval het dataverkeer tussen de apparaten niet blokkeren. Bij openbare wifiinstallaties of gastnetwerken kan dat wel het geval zijn. Schakel dan over op een eigen netwerk.
ANDROID
Als een Android-toestel via een usb-kabel met een ander platform verbonden is, gedraagt het zich in eerste instantie neutraal. Het toestel laadt zichzelf op en laat geen bestanden zien. Bij de usb-opties, die meestal als melding verschijnen, staat echter een mogelijkheid om dat aan te passen. Het Android-toestel kan zich aanmelden als een camera (PTP) of als gegevensopslag (MTP). Linux en Windows hebben dan toegang zonder verdere actie te hoeven ondernemen. Bij macOS is echter wat meer nodig in de vorm van speciale software: pas als de app Android File Transfer geïnstalleerd is, kan een Mac de bestanden zien.
Als er geen kabel bij de hand is, kan Android ook bestanden versturen via bluetooth. Daarvoor moeten zowel de verzender als de ontvanger dergelijke overdrachten toestaan. Geschikte opties daarvoor zijn te vinden bij de bluetooth-instellingen voor alle platformen. Bovendien is het noodzakelijk dat een gebruiker akkoord gaat met de overdracht. Vaak duurt het lang voordat die vraag tevoorschijn komt.
Bij macOS moet bluetooth worden geactiveerd voor het ontvangen van bestanden bij de systeeminstellingen onder Delen. Linux Mint ontvangt alleen bestanden als het pakket ‘obexftp’ geïnstalleerd is. Voor Windows is het noodzakelijk om het ontvangen van bestanden expliciet te starten bij de bluetoothinstellingen (zoek naar ‘bluetooth’ in het startmenu). Alleen iOS kan geen gebruik maken van bluetooth voor bestandsoverdracht.
Android-toestellen kunnen bestanden ook tussen elkaar en naar Chrome-OS-apparaten heen en weer sturen via wifi – of specifieker gezegd de peer-to-peer wifimodus die WiFi Direct wordt genoemd. De functie heet Nearby Share. Het instellen daarvan kost weinig moeite. Google wil de eerder gebruikte transmissie-interface Android Beam, die NFC gebruikte om de verbinding tot stand te brengen, niet meer gebruiken omdat die onhandig en onpopulair was. Afhankelijk van de softwareversie van het Android-toestel kun je die oude technologie echter nog steeds tegenkomen.
Vroeg of laat kom je in de Play Store ook andere software tegen die werkt met WiFi Direct. Maar alleen nerds met veel geduld kunnen daar de platformgrenzen mee overwinnen. Als je het probeert: gebruik aan beide kanten dezelfde software van dezelfde leverancier – alle andere opties zijn een garantie voor storingen.
IOS
iOS is naarmate het versienummer hoger werd steeds soepeler geworden als het gaat om het verbinden van mobiele apparaten met andere platformen. Als je een iPhone op een Windows-pc aansluit, kun je zelfs zonder iTunes bij de foto’s. Maar muziek, video’s en geluidsopnames worden door Apple in een gouden kooi opgesloten. Ze zijn via de kabel alleen makkelijk te bereiken met speciale apps. Het uitwisselen van afzonderlijke bestanden, zoals een enkele foto, is wel mogelijk zonder een kabel te hoeven gebruiken. Met behulp van AirDrop kan elk modern Apple-apparaat makkelijk bestanden ontvangen – alleen van andere Apple-apparaten en afhankelijk van de configuratie alleen als bekende contactpersonen ze leveren.
iOS opent de wereld via de app Bestanden, die onderdeel is van de basisconfiguratie. Bestanden kunnen daar vanuit verschillende apps naartoe worden gestuurd. De app krijgt daarmee de rol van intermediair: andere apps, zoals die voor cloudopslag, kunnen zich daar integreren en hun inhoud weergeven. Bij iOS 13 kan Bestanden standaard zelfs bestanden in SMB-shares opnemen en dus toegang tot servers hebben. Op die manier kun je bestanden vanaf iOS rechtstreeks sturen naar shares die Linux, macOS en Windows beschikbaar stellen (meer gedetailleerde informatie daarover in het volgende artikel).
Een veel voorkomende manier om bestanden van en naar een iOS-apparaat te krijgen is via de apps zelf. Vele bieden mechanismen om te communiceren met de gangbare diensten voor het delen van bestanden. Dat zijn meestal de gebruikelijke clouddiensten, maar ook bijvoorbeeld WebDAV, een toegangsprotocol op basis van HTTP(S). Veelgebruikte opensource software zoals Nextcloud biedt dat voor toegang tot bestanden, zodat je die niet aan een cloud hoeft toe te vertrouwen, maar ze zelf ergens kunt stallen. Windows, macOS, Android en Linux hebben ook WebDAVclientsoftware.
LINUX
Afgezien van de speciale features binnen Apples gouden kooi, zoals AirDrop, kan een Linux-distributie van huis uit alles doen wat de andere platforms met bestanden ook kunnen. Om bestanden via bluetooth naar een ander apparaat te sturen, moet je de apparaten met de betreffende instellingen (Bluetooth Pairing) koppelen. Dat kan met alle gangbare platforms en ook met macOS als tegenpartij.
Vanuit de grafische gebruikersinterface heeft Linux waarschijnlijk de meeste protocollen beschikbaar voor bestandsuitwisseling in vergelijking met alle platformen: het maakt niet alleen verbinding met de gebruikelijke Windows SMB-shares (zie het volgende artikel), maar ook met AFP-shares van een Mac, kopieert bestanden via SSH, FTP, WebDAV en andere diensten. Modules die het bestandsbeheer van de grafische gebruikersinterface uitbreiden nemen dat voor hun rekening en niet, zoals je wellicht zou denken, de Linux-kernel. Als een functie ontbreekt, is het nodig om te achterhalen welk pakket die functie biedt – we hebben hier obexftp voor Bluetooth al genoemd, in het volgende artikel over SMB staan er meer.
MACOS
macOS kan met andere Apple-apparaten met AirDrop makkelijk incidenteel bestanden uitwisselen.
Het besturingssysteem is ook zeer geschikt als bluetooth-gegevensbron en kan bestanden versturen. Daarvoor is het noodzakelijk de betrokken apparaten eerst te koppelen. Minder goed gelukt lijken echter de mogelijkheden om een bestandsbeheerder via een bluetoothverbinding toegang te geven tot een gekoppeld apparaat. De verbindingen werden meestal afgebroken, en dat bij alle platformen.
Voor het uitwisselen van bestanden buiten de Apple-wereld op de langere termijn kan macOS toegang krijgen tot de Windows SMB-shares, die in het volgende artikel in meer detail worden beschreven. Als je alleen met macOS te maken hebt, dan zijn de eigen AFP-shares van Apple ook geschikt. De Mac heeft geen uitbreidingen nodig zoals de mobiele platforms of Linux voor het uitwisselen van bestanden – niet als afzender en niet als ontvanger. Alles is al ingebouwd.
WINDOWS
Windows kan, net als alle andere platforms, bestanden uitwisselen via bluetooth. Microsoft heeft de bluetoothfuncties voor het verzenden en ontvangen van bestanden een beetje verborgen in de instellingen. Maar je kunt ze ook eenvoudig tevoorschijn toveren via het contextmenu van het bluetoothpictogram in het systeemvak (op de taakbalk naast de klok).
Bovendien heeft Microsoft bij Windows 10 vanaf versie 1803 een functie voor bestandsuitwisseling tussen apps geïntroduceerd. Die heet ‘Delen in directe omgeving’ en kan worden geactiveerd bij de Windows-instellingen door onderaan bij de klok te klikken op het tekstballonnetje voor het actiecentrum.
Als de functie actief is, kunnen Windows-pc’s bestanden vanuit de Store-apps versturen naar een naburige pc, maar ook met Verkenner. Dat laatste doe je via het contextmenu van een bestand en het menuitem Delen (de klassieke SMB-netwerkshares zijn te vinden bij de Eigenschappen van een map).
In de praktijk bleek het delen in de directe omgeving nogal weerbarstig. Ui teindelijk werkte dat alleen als de bluetoothadapters het LE-profiel ondersteunen. De bij de invoering beloofde apps voor Android en iOS zijn nog steeds niet beschikbaar. Voor Android wordt
de Microsoft-launcher verondersteld het delen in de eigen omgeving te ondersteunen. Maar uiteindelijk blijkt dat ook voor Windows geldt wat al zo was voor macOS en Linux: voor een stabiele en betrouwbare verbinding moet je werken met SMB-shares.
ANDERE PLATFORMEN
De grote partijen krijgen het blijkbaar niet voor elkaar om het af een toe platformonafhankelijk uitwisselen van bestanden buiten hun clouddiensten om mogelijk te maken. Zelfs bij die clouddiensten heeft dan nog ieder zijn eigen oplossing: iCloud, OneDrive en Google Drive. Daarom proberen vlijtige ontwikkelaars platformonafhankelijke manieren te vinden om bestanden uit te wisselen. De meeste projecten die als opensource worden ontwikkeld, lijken op wat Apple met AirDrop geprobeerd heeft. De levensduur van de projecten lijkt echter nogal te variëren: wat vandaag in de mode is, is morgen misschien wel geschiedenis.
Maar er is een gemeenschappelijke deler: browsers met hun WebRTC-engine, die is bedoeld voor realtime communicatie en die mogelijkheden biedt voor videoconferenties, zijn de spil in dat verhaal. Het principe is eenvoudig: apparaten op het lokale netwerk zien elkaar, en een gebruiker kan een bestand slepen en neerzetten naar een naburige peer in het browservenster of bestanden met een muisklik selecteren om verstuurd te worden. De peers krijgen meestal sprekende namen als Honest Cat of Ivory Pigeon, die je niet kunt aanpassen. De browser aan de ontvangende kant vraagt om een bevestiging zodra een bestand wordt aangeboden.
ShareDrop (sharedrop.io) lijkt het meest actieve en langst lopende project te zijn. Naast de lokale bestandsuitwisseling is het ook de bedoeling om met systemen buiten het lokale netwerk te kunnen werken. Daarvoor wordt een qr-code of url getoond die aan de externe partner moet worden doorgegeven. ShareDrop gebruikt met Firebase een gehoste database als centrale tool, die niet eenvoudig te vervangen is. Daarom is het niet geschikt voor een volledig autonome ShareDrop-server.
De insteek van Snapdrop (snapdrop.net) is een zo minimaal mogelijke implementatie. De ontwikkelaar heeft zich georiënteerd op ShareDrop, maar werkt dan wel zonder de externe afhankelijkheid van een gehoste dienst. Er is zelfs een dockercompose.yml voor het zelf hosten van de webinterface, die de ruggengraat van de applicatie vormt. Bij onze experimenten met ShareDrop en Snapdrop voelde die laatste wat soepeler aan en hadden we betere ad hoc resultaten bij het cross-platform uitwisselen van bestanden. Toch lukte het niet altijd: de tickets op GitHub spreken boekdelen over de moeilijkheden die we op bepaalde platformen en met bepaalde browsers ondervonden.
WAT WERKT HET BESTE?
De methoden voor het overbrengen van losse bestanden, de clouddiensten voor een geautomatiseerde bestandsoverdracht en zelfs alternatieve, cloudloze synchronisatiemethoden zoals Resilio Sync hebben een gemeenschappelijk nadeel: er ontstaat al snel een chaos als de bestanden op meerdere apparaten worden bewerkt. Als het uitwisselen van de bestanden onderweg ergens hapert, krijg je al snel te maken met veranderingen die niet meer automatisch kunnen worden samengevoegd.
Als je een gelijktijdige bewerking nodig hebt, doe je jezelf een groot plezier met een traditionele SMB-share. Daarbij maken gangbare officetoepassingen zelfs gelijktijdige toegang door meerdere gebruikers mogelijk. Dat kan anders alleen met speciale alternatieven, zoals Microsofts SharePoint, waarmee Microsofts Officetoepassingen gelijktijdig kunnen worden gebruikt via uitbreidingen van het WebDAV-protocol. Of je kunt de bewerking verplaatsen naar de browser, bijvoorbeeld met OnlyOffice of Office 365. Dan draait de applicatie als het ware maar één keer