Daten über mehrere Rechner hinweg abgleichen, Ordner für Kollegen oder Freunde freigeben: Für diese Aufgaben stehen Cloudspeicher-Lösungen wie Owncloud oder proprietäre Dienste wie Dropbox bereit. Mit Pydio versucht sich eine freie Software in diesem Gebiet zu etablieren.
Aus Raider wird Twix, sonst ändert sich nix – dieser Claim galt nicht nur für den bekannten Schokoriegel, sondern auch für eine Reihe von Softwareprodukten, die in den letzten Jahren eine Umbenennung erfuhren. Anwender des Firefox-Browsers mussten sich zum Beispiel gleich zwei Mal umgewöhnen: Ursprünglich als Phoenix gestartet, musste Mozilla aufgrund einer Klage des US-amerikanischen BIOS-Herstellers Phoenix Technologies nochmals einen neuen Namen wählen. Doch auch Firebird kollidierte mit einem Software-Projekt, der gleichnamigen Open-Source-Datenbank. Am Ende fanden die Verantwortlichen mit Firefox endlich einen Namen, der bis heute blieb. An der Software änderte sich bis auf die gewöhnliche Evolution von Version zu Version dabei jedoch nichts.
Auch Pydio [1] ging aus einem älteren Projekt hervor, allerdings haben der Ajaxplorer von damals und das aktuelle Pydio nur noch wenig gemein. Was früher einmal ein webbasierter Dateimanager für Inhalte auf dem Webserver war, richtet sich heute an Nutzer, die eine freie Alternative zu proprietären Online-Speichern wie Dropbox, Box oder Google Drive suchen. Pydio bietet die üblichen Funktionen für diese Aufgabe, wie die Möglichkeit, Daten über mehrere Rechner hinweg zu synchronisieren und mittels Apps von mobilen Geräten aus auf diese zuzugreifen, sowie Dateien für andere freizugeben. Die Software bringt dazu neben der in PHP geschriebenen Serverkomponente Desktop-Clients für Linux, Mac OS X und Windows sowie Apps für Android und iOS mit.
Installation
Für Pydio benötigen Sie einen Webserver mitsamt Datenbank. Die Software unterstützt neben MySQL auch PostgreSQL und SQLite. Zu Demo-Zwecken lässt sich Pydio ohne Datenbank betreiben, im produktiven Einsatz raten die Entwickler von dieser Möglichkeit jedoch ab. Zur Installation stellt Pydio distributionsunabhängige Tarballs sowie Pakete im DEB- und RPM-Format mitsamt entsprechenden Paketquellen zur Verfügung. Im Rahmen des Tests kam eine Server-Installation von Ubuntu 14.04 LTS zum Einsatz. Dementsprechend schildert der Beitrag die Installation auf Debian-Distributionen wie Ubuntu sowie speziellen Debian-Abkömmlingen wie etwa Raspbian. Hinweise zu anderen Distributionen liefert das Projekt auf den Download-Seiten [2].
Webserver
Pydio kommt mit einer ganzen Reihe von Webservern zurecht. Ob Sie als Unterbau Apache, Lighty (offiziell Lighttpd) oder andere Alternativen wie Nginx verwenden, bleibt Ihnen überlassen. Einsteiger kommen in der Regel mit dem sehr gut dokumentierten Apache in Kombination mit MySQL zurecht. Die dafür nötigen Pakete installieren Sie auf einem Debian- oder Ubuntu-System mit dem Aufruf aus Listing 1.
Listing 1
$ sudo apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql
Pydio kommerziell
Neben der freien Community-Edition bietet Pydio kostenpflichtige Spielarten seiner Software an [13]. Letztere richten sich an Unternehmen oder Organisationen, die Cloud-Speicher zum Selbsthosten suchen und auf Support und individuelle Anpassungen nicht verzichten möchten. Der Preis für Pydio Pro beginnt bei 675 Euro/Jahr und beinhaltet bei diesem Tarif den Zugang von bis zu 50 Anwendern. Das mag auf den ersten Blick teuer klingen, doch Dropbox für Unternehmen würde bei diesem Umfang mit über 6000 Euro/Jahr zu Buche schlagen [14]. Das Angebot von Pydio beinhaltet jedoch nur den Support und Anpassungen, für den Server müssen Interessenten selbst sorgen.
Zur Installation öffnen Sie die Datei /etc/apt/sources.list in einem mit Root-Rechten gestarteten Editor (etwa über sudo nano /etc/apt/sources.list) und fügen am Ende die zwei Zeilen aus Listing 2 ein. Experimentierfreudige Anwender tauschen das stable gegen testing aus und installieren auf diesem Weg die immer aktuelle Entwicklerversion des Programms. Für ein Produktivsystem sollten Sie auf jeden Fall die offiziell veröffentlichte Ausgabe wählen, andernfalls drohen bei einem Update Fehler oder gar Datenverluste. Nach dem Einfügen der Paketquelle installieren Sie den Schlüssel der Entwickler, lesen die Paketdatenbank neu ein und spielen Pydio auf das System (Listing 3).
Listing 2
deb http://dl.ajaxplorer.info/repos/apt stable main deb-src http://dl.ajaxplorer.info/repos/apt stable main
Listing 3
$ wget -O - http://dl.ajaxplorer.info/repos/charles@ajaxplorer.info.gpg.key | sudo apt-key add - $ sudo apt-get update $ sudo apt-get install pydio
Anschließend kopieren Sie die Beispielkonfiguration ins entsprechende Verzeichnis, aktivieren den virtuellen Host mitsamt der Rewrite-Engine zum Umschreiben von kryptisch lautenden URLs in sprechende Adressen und starten den Webserver am Ende einmal neu (Listing 4). Der Erfolg der Installation zeigt sich, wenn Sie http://localhost/pydio oder die entsprechende IP-Adresse des Webservers http://<I>IP-Adresse<I>/pydio in einem Browser aufrufen und sich der Installationsassistent der Webanwendung öffnet.
Listing 4
$ sudo cp /usr/share/doc/pydio/apache2.sample.conf /etc/apache2/sites-available/pydio.conf $ sudo a2ensite pydio $ sudo a2enmod rewrite $ sudo php5enmod mcrypt $ sudo service apache2 restart
Dieser prüft das Vorhandensein der benötigten Systemkomponenten ab (Abbildung 1) und hilft anschließend beim Konfigurieren des Programms. Der Assistent richtet einen Administratorzugang ein, fragt globale Einstellungen wie Pfade, Encodings oder die Sprache ab und nimmt die Zugangsdaten zur Datenbank entgegen (Configurations storage). Achten Sie darauf, den Datenbankzugang über die Schaltfläche unter den Eingabefeldern zu testen: So ersparen Sie sich bei einem Fehler die Mühe, alle Daten nochmal eingeben zu müssen. Entgegen der gängigen Praxis anderer Webanwendungen legt Pydio die Datenbank bei Bedarf nicht selbstständig an. Das müssen Sie mithilfe von Datenbanktools wie PhpMyAdmin oder von Hand über die MySQL-Konsole erledigen (Listing 5).
Listing 5
### Der MySQL-Befehl legt eine Datenbank mit ### dem Namen "pydio" an, diesen müssen Sie im ### Installationsassistenten wieder angeben. $ mysql -u root -p mysql> CREATE DATABASE pydio; Query OK, 1 row affected (0.03 sec)
Nach Eingabe aller Daten richtet der Installationsassistent alle nötigen Konfigurationen ein und bereitet die Datenbank vor. Aufgrund fehlender Rechte darf der Assistent auf einem Debian-System die bei der Installation dynamisch erzeugte .htaccess-Datei des Programms nicht automatisch in das Dateisystem schreiben. Sie müssten daher die Datei /usr/share/pydio/.htaccess von Hand bearbeiten (etwa über sudo nano /usr/share/pydio/.htaccess) und den im letzten Schritt des Assistenten angezeigten Inhalt der Datei von Hand übertragen. Anschließend laden Sie den Inhalt des Browserfensters neu, das daraufhin die Pydio-Webseite zeigen sollte. Melden Sie sich dort nun mit den Daten des Pydio-Administrators oder den im Rahmen des Assistenten angelegten ersten Benutzers an.
Einstellungen
Auf dem Hauptbildschirm sehen Sie mit Meine Dateien und Öffentliche Dateien zwei von Haus aus angelegte Arbeitsumgebungen (Abbildung 2). Auch wenn der Name Öffentliche Dateien den Eindruck erweckt, Pydio würde die dort abgelegten Daten öffentlich freigeben, doch ohne zusätzliche Einstellungen bleiben die dort abgelegten Dateien erst einmal privat.
Die Arbeitsumgebungen stellen im Endeffekt übergeordnete Ordner dar, denen sich unterschiedliche Freigaberichtlinien zuordnen lassen. In den Einstellungen bietet Pydio die Möglichkeit, weitere Arbeitsumgebungen anzulegen. Deren Daten müssen nicht zwangsläufig auf dem Server liegen – Pydio unterstützt hier Netzwerkprotokolle wie Samba, FTP über SSH oder auch Amazons S3-Webservice.

Abbildung 2: Mit Arbeitsumgebungen lassen sich in Pydio Bereiche mit unterschiedlichen Zugangsberechtigungen und Speicherorten definieren.
Die wichtigsten Einstellungen erreichen Sie über das Menü rechts oben im Fenster. Unter Mein Dashboard tragen Sie Ihren vollständigen Namen ein oder weisen dem Account ein Profilbild zu. Als Benutzer mit administrativen Rechten finden Sie an dieser Stelle auch die Einstellungen. Dort erzeugen Sie im Abschnitt Arbeitsumgebungen**& Benutzer weitere Arbeitsumgebungen oder legen zusätzliche Accounts und Gruppen mit den entsprechenden Zugriffsregeln an (Abbildung 3). Im produktiven Betrieb sollten Sie unter Einstellungen | Grundeinstellungen | Uploader-Einstellungen | Limitierungen die maximale Dateigrösse einer hochzuladenden Datei erhöhen. Dazu müssen Sie eventuell noch die entsprechende Konfiguration in der Datei /etc/php5/apache2/php.ini des Servers anpassen (Listing 6).

Abbildung 3: Die Einstellungen bieten zahlreiche Optionen, um die Software an die eigenen Bedürfnisse anzupassen.
Listing 6
[...] ; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 10M [...]
TIPP
Ändern Sie Zugriffsrechte und erlauben zum Beispiel einem Anwender den Zugriff auf eine neue Arbeitsumgebung, dann wirken sich diese Anpassungen erst bei einer erneuten Anmeldung des Nutzers aus. Zur Sicherheit sollten sich Anwender daher nach einer Änderung der Rechte aus- und wieder einloggen.
In der Praxis
Öffnen Sie eine der Arbeitsumgebungen, bekommen Sie eine dreigeteilte Ansicht zu Gesicht: In der Spalte links sehen Sie eine Übersicht mit Lesezeichen, Freigaben und den aktuellen Ordnern. Im größten Bereich in der Mitte zeigt Pydio die jeweiligen Ordnerinhalte an (Abbildung 4). In der rechten Spalte blendet es zusätzliche Informationen wie Vorschaubilder oder Metadaten zur gerade markierten Datei ein. Neue Inhalte fügen Sie am einfachsten per Drag & Drop aus dem Dateimanager in den Dateibereich zu Pydio hinzu. Die Upload-Routine verkraftet nicht nur den Transfer einer einzelnen Datei, bei Bedarf schieben Sie gleich eine ganze Auswahl an Dateien und Ordnern in das Browserfenster. Alternativ wählen Sie rechts oben die Schaltfläche Hochladen und dort Durchsuchen an.

Abbildung 4: In der Ordneransicht bietet das Webfrontend von Pydio ähnlichen Komfort wie ein lokal installierter Dateimanager.
In der Dateiansicht arbeiten Sie, wie Sie es von einem herkömmlichen Dateimanager her kennen. Mit [Strg] markieren Sie mehrere Daten gleichzeitig, mit der Umschalttaste wählen Sie gleich einen ganzen Bereich aus. Über die rechte Maustaste öffnen Sie ein Kontextmenü mit weiterführenden Aktionen, mit gehaltener linken Maustaste verschieben Sie die aktuelle Auswahl. Halten Sie zusätzlich [Strg] gedrückt, kopieren Sie die ausgewählten Dateien. Für Bilder, Videos und PDFs gibt es integrierte Betrachter; für Texte beinhaltet Pydio zudem einen Editor (Abbildung 5). Bilder schickt Pydio auf Wunsch an die webbasierte Bildbearbeitung Pixlr [3] weiter. Damit das funktioniert, muss die Pydio-Installation allerdings aus dem Internet zu erreichen sein (Abbildung 6) und der Browser Flash-Inhalte unterstützen.

Abbildung 5: Die Weboberfläche von Pydio beinhaltet einen einfachen Editor zum Anzeigen und Bearbeiten von Textdateien.

Abbildung 6: Die integrierte Bildbearbeitung greift auf den Onlinedienst Pixlr zurück und benötigt das Flash-Browserplugin.
Freigaben einzelner Dateien oder ganzer Ordner erstellen Sie über einen Rechtsklick auf das entsprechende Objekt und den Punkt Teilen aus dem Kontextmenü. In dem folgenden Dialog bietet Pydio bei Freigabe eines Ordners die Wahl zwischen dem Teilen als öffentlicher Link oder als Arbeitsumgebung. Auf dem ersten Weg erhalten Sie einen Link mit einer kryptisch langen URL wie etwa http://<I>beispiel<i>.<i>tld<I>/pydio/data/public/508b7b, den Sie zum Beispiel per Mail weiterleiten. Die zweite Option erstellt aus dem Ordner eine neue Arbeitsumgebung, die Sie weiteren Nutzern der Pydio-Instanz zur Verfügung stellen. Die neue Freigabe listet Pydio dann umgehend in der linken Seitenleiste unter Meine Freigaben auf.
Pydio-Clients
Erst ein Client, der im Hintergrund ausgewählte Verzeichnisse synchronisiert, bietet auch für Pydio ähnlichen Komfort wie etwa Dropbox oder Google Drive. Entsprechende Programme bieten die proprietären Cloudspeicher-Dienste üblicherweise an – im Falle von Google allerdings nicht für Linux. Auch Pydio stellt mit PydioSync [4] eine entsprechende Anwendung zur Verfügung.
Für Windows und Mac OS X steht sie als MSI- oder DMG-Paket bereit; die Linux-Variante des Programms gibt es zwar als Binary, allerdings fehlen DEB- oder RPM-Pakete für die Paketverwaltung. Das GitHub des Pydio-Projekts [5] bezeichnet PydioSync noch als “pre-alpha”; mit dieser Angabe untertreiben die Entwickler ausnahmsweise einmal nicht.
Kopflos
Sie müssen nicht zwingend die grafische Benutzeroberfläche von PydioSync nutzen. Der Agent kommt dank eines Webfrontends auch ohne sie aus. Starten Sie dazu den Hintergrund mit einer beliebigen Kombination aus Benutzername und Passwort:
$ pydio-agent --api_user=Benutzer --api_password=Passwort
Anschließend öffnen Sie die URL http://localhost:5556 in einem Browser und richten wie in der Pydio-UI die zu synchronisierende Arbeitsumgebung ein.
Der Client besteht aus einem Hintergrunddienst (agent) und einer eigenständigen Oberfläche (pydio-ui). Zur Installation des Clients entpacken Sie das heruntergeladene Archiv PydioSync-Linux-Version.tar.gz in ein neues Verzeichnis und machen den Pydio-Agent ausführbar (Listing 7). Anschließend starten Sie die Oberfläche für eine kurze Zeit und beenden sie gleich wieder mit [Strg]+[C] im Terminal oder über Quit im Kontextmenü des Status-Icons der Anwendung. Dieser Vorgang erzeugt die Konfigurationsdatei ~/.local/share/Pydio/ports_config im Home-Verzeichnis Ihres Benutzers, in der per Zufall generierte Zugangsdaten stehen (Listing 8).
Listing 7
$ mkdir pydio-sync $ tar xzf PydioSync-Linux-0.8.12.tar.gz -C pydio-sync $ chmod +x pydio-sync/agent/pydio-agent
Listing 8
$ pydio-ui/pydio-ui ### Pydio-UI mit [Strg]+[C] abbrechen $ cat ~/.local/share/Pydio/ports_config Pydio port config file pydio:5556:5bBndNy3JTlDR3En:7CSPKEC8hmiaxlCz
Mit diesen Daten rufen Sie nun den Agent mitsamt der Pydio-Oberfläche auf (Listing 9). Färbt sich das Icon der Anwendung orange, können Agent und Oberfläche miteinander kommunizieren und die Menüeinträge Open local folder, Open remoute und Settings lassen sich anwählen. Zum Starten des Datenabgleichs tragen Sie nun in den Settings unter Create a new Synchronisation die Zugangsdaten der Pydio-Installation ein. Gleichzeitig wählen Sie eine Arbeitsumgebung sowie auf der Festplatte des Systems einen Zielordner, der synchronisiert werden soll. Wie von der proprietären Konkurrenz gewohnt, hält Pydio nun die Daten zwischen dem Server und den angebundenen Geräten synchron (Abbildung 7).
Listing 9
$ agent/pydio-agent --api_user=5bBndNy3JTlDR3En --api_password=7CSPKEC8hmiaxlCz $ pydio-ui/pydio-ui

Abbildung 7: Unter Linux lässt sich der Client zum automatischen Abgleich der Daten nur mit vielen Klimmzügen installieren.
Neben den PC-Clients bietet Pydio auch Apps für mobile Geräte mit Android [6] und iOS [7] an. Die Anwendungen stehen bereits in den entsprechenden App-Stores zur Installation bereit. Im direkten Vergleich der Android-Version (Abbildung 8) mit der Dropbox-App fehlen Pydio für Android praktische Funktionen wie etwa der automatische Transfer der mit dem Handy geschossenen Bilder in den Cloud-Speicher. Des Weiteren scheint speziell die Entwicklung der Android-App ins Stocken geraten zu sein: Sie bekam Anfang Dezember 2014 das letzte Mal eine Aktualisierung spendiert. Die iOS-App erfuhr hingegen noch im März 2015 ein Update und macht generell einen besseren Eindruck.

Abbildung 8: Neben Clients für Linux, Mac OS X und Windows bietet Pydio auch Apps für iOS und – wie hier zu sehen – für Android an.
Im Test zeigte die Android-App zudem eklatante Bugs: So öffnet Pydio für Android Textdateien zwar in einem integrierten Editor, allerdings fehlt in diesem der Inhalt der Datei; es erscheint lediglich ein leeres Editorfenster. Tragen Sie hier nun irrtümlich einen neuen Text ein und speichern diesen ab, geht der ursprüngliche Text vollständig verloren. An dieser Stelle müssten die Entwickler daher schnellstmöglich eingreifen und ein Update der App veröffentlichen.
Versionsverwaltung
Die bekannten Cloudspeicher-Lösungen helfen nicht nur beim kollaborativen Arbeiten sowie beim Abgleich von Daten über mehrere Rechner hinweg, sondern übernehmen oft gleichzeitig die Aufgabe eines integrierten Backups. In der Regel erstellen diese Dienste bei jeder Änderung einer Datei über eine Versionsverwaltung eine Sicherung, die sich mit wenigen Klicks wiederherstellen lässt. So müssen Sie als Anwender weder Datenverluste noch ungewollte Änderungen an freigegebenen Daten fürchten. Pydio implementiert diese Aufgabe [8] mithilfe des quelloffenen Versionsverwaltungssystems Git [9]. Die Funktion arbeitet allerdings nur mit Arbeitsumgebungen, die Ihre Daten lokal (in den Einstellungen fs) ablegen.
TIPP
Auf Servern, die von Ubuntu 12.04 auf 14.04 aktualisiert wurden, bricht die Installation jeglicher PHP-Erweiterungen mit Meldungen ab wie could not extract the package.xml file from /build/buildd/php5-5.5.9+dfsg/pear-build-download/packagename.tgz. Zu diesem Fehler gibt es seit mehr als einem Jahr eine Fehlermeldung bei Launchpad [15], allerdings noch keine offizielle Lösung. Stattdessen müssen Sie sich selbstständig mit einem Notbehelf [16] um die Angelegenheit kümmern.
Auf dem für den Artikel genutzten Testserver mit Ubuntu 14.04 musste dafür Git mitsamt der PHP-Erweiterungen VersionControl_Git [10] installiert werden. Diese Erweiterung befindet sich seit der letzten Veröffentlichung Anfang 2011 ununterbrochen im Alpha-Stadium, zur Installation müssen Sie daher die Pear-Konfiguration kurzzeitig anpassen (Listing 10). Anschließend wählen Sie in den Einstellungen von Pydio unter Arbeitsumgebungen die mit der Versionsverwaltung zu sichernde Arbeitsumgebung aus und aktivieren unter Erweiterungen | Erweiterung zu dieser Arbeitsumgebung hinzufügen das Git Repository durch einen Klick auf Quelle hinzufügen [11].
Listing 10
$ sudo apt-get install git $ sudo pear config-set preferred_state alpha $ sudo pear install VersionControl_Git $ sudo pear config-set preferred_state stable
Anschließend erscheint bei einem Rechtsklick auf eine Datei in der entsprechenden Arbeitsumgebung im Kontextmenü der Eintrag Versionen, der die letzten Änderungen in einer Übersicht ausgibt – ohne weitere Tricks meldet Pydio an dieser Stelle allerdings nur git – fatal: bad default revision ‘HEAD’. Diese Fehlermeldung schalten Sie durch das initiale Einrichten eines Git-Benutzers mitsamt dem ersten Commit ab (Listing 11). Im Test wollte die Versionsverwaltung allerdings auch nach dieser Maßnahme noch nicht korrekt funktionieren: Pydio zeigte zwar die beim Commit erzeugte Version an (Abbildung 9), doch bei weiteren Änderungen buchte die Software diese nicht ins Git ein. Dabei half auch nicht der im Pydio-Forum genannte Hinweis, die Datei- und Ordnerrechte zu korrigieren [12].
Listing 11
### Git für Benutzer einrichten $ git config --global user.email "name@beispiel.de" $ git config --global user.name "Ihr Name" ### Git im Verzeichnis der Arbeitsumgebung initialisieren $ cd /pfad/zu/arbeitsumgebung/.git $ git init . $ git add . $ git commit -a -m "Initial commit"

Abbildung 9: Mithilfe der Versionsverwaltung lassen sich in der Theorie geänderte Dateien wiederherstellen. In der Praxis lässt sich diese Funktion nur sehr schwer implementieren.
Kritik
Die Ansätze von Pydio klingen gut und sehen vielversprechend aus, doch der Teufel steckt hier wie so oft im Detail. Die Dokumentation der Software entpuppt sich als absolut unzureichend und lückenhaft, sodass sich Anwender wichtige Hinweise und nützliche Tipps über die Webseite und das Forum zusammensuchen müssen. An vielen Stellen benötigen die Anleitungen dringendst eine Aktualisierung – das betrifft insbesondere die Installationshinweise des Pydio-Sync-Clients unter Linux.
Auch in der Software stehen dem Anwender oft Fragezeichen in den Augen: Würden Sie etwa auf die Idee kommen, zum Erzeugen einer leeren Datei auf die Schaltfläche Neuer Ordner zu klicken und dort im Dialog die Option Sie können auch eine leere Datei erstellen vorzufinden? Wohl eher nicht. Alles in allem zeigt Pydio daher nur vielversprechende Ansätze, doch für den produktiven Einsatz bräuchte die Anwendung dringend eine grundlegende Überholung.
Infos
[1] Pydio: https://pyd.io
[2] Installation: https://pyd.io/download/
[3] Pixlr: https://pixlr.com
[4] PydioSync: https://pyd.io/apps/pydio-sync
[5] Github zu PydioSync: https://github.com/pydio/pydio-sync
[6] Android-Client: https://pyd.io/apps/android-client
[7] iOS-Client: https://pyd.io/apps/ios-client
[8] “Files versioning”: https://pyd.io/docs/v5/workspaces/workspaces-additional-features/files-versionning/
[9] Git: http://git-scm.com
[10] VersionControl_Git: https://pear.php.net/package/VersionControl_Git
[11] “Activate Files versioning”: https://pyd.io/docs/v6/workspaces/additional-features/files-versionning/
[12] “Workaround für Versioning”: https://pyd.io/f/topic/git-versionning-install/
[13] Kommerzielles Pydio: https://pydio.com
[14] Dropbox für Unternehmen: https://www.dropbox.com/business/buy
[15] “HP-Erweiterungen lassen sich nicht installieren”: https://bugs.launchpad.net/ubuntu/+source/php5/+bug/1310552
[16] PHP-Erweiterungen nach Update auf Ubuntu 14.04: http://stackoverflow.com/a/23824148






