Welches Tool kann ich verwenden, um den Inhalt eines lokalen Verzeichnisses mit dem eines Rackspace Cloud Files-Buckets zu synchronisieren?
Ich brauche eine rsync-ähnliche Anwendung, um einen Spiegel zu erstellen, keine Backup-Anwendung. Was ich will, ist die Möglichkeit,
rsync --update --delete /local/dir/ cloudfiles://bucket
sodass der Remote-Bucket ein genaues Spiegelbild der Dateien enthält, die sich darin befinden /local/dir/
.
Die Metadaten der Dateien (Eigentümer, Berechtigungen) sind nicht wichtig und es gibt keine Verzeichnisse im Hauptverzeichnis.
Antwort1
Der einfachste Weg, ein lokales Verzeichnis mit Rackspace-Cloud-Dateien zu synchronisieren, ist über die Konsolentools desOpenStack/Swift-ProjektUnter Ubuntu können die Tools installiert werden mitapt-get install python-swiftclient
Führen Sie anschließend den folgenden Befehl im Terminal aus (vorausgesetzt, Sie befinden sich im Verzeichnis, in das Sie hochladen möchten):
$ swift -A https://auth.api.rackspacecloud.com/v1.0 -U <username> -K <api-key> upload <containername> . --changed
Dadurch werden die Dateien aus Ihrem aktuellen Verzeichnis rekursiv in den <containername>
Container hochgeladen. Dies spart Zeit, da nur geänderte Dateien hochgeladen werden. Sie müssen die angeben, mit der <username>
Sie sich beim Cloud Control Panel anmelden, und die, die <api-key>
unter Konto / Kontoeinstellungen im selben Control Panel verfügbar ist.
Aufmerksamkeit: Wenn Sie relative oder absolute Pfade verwenden, lädt Swift sie mit dem Pseudopfad hochüber die Kommandozeile bereitgestellt.
in den Container. Wenn Sie also statt zu synchronisieren synchronisieren /var/www/test
, landen die Dateien unter dem /var/www/test
Pseudopfad des Containers – höchstwahrscheinlich ist das nicht das, was Sie wollen.
Antwort2
Für Linux habe ich dieses alte Projekt gefunden:http://code.google.com/p/cloudfiles-sync/wiki/Instructions
Für Windows gibt es dieses GUI-Tool: http://www.cloudberrylab.com/free-openstack-storage-explorer.aspx
Ich habe außerdem gerade dieses Tool gefunden, mit dem Sie möglicherweise einen Cloud-Dateispeicher einbinden können:http://smestorage.com/?p=static&page=LinuxDrive
Antwort3
Sie können das Rackspace Cloud Files FUSE-Modul (http://www.rackspace.com/knowledge_center/article/mounting-rackspace-cloud-files-to-linux-using-cloudfuse), um ein mountbares Dateisystem zu erstellen. Beachten Sie jedoch die folgenden Einschränkungen:
- Verwenden Sie etwas wie --size-only, um festzustellen, ob die Datei vollständig geschrieben wurde, nicht -a oder ähnliches, da das Festlegen von Berechtigungen und Zeiten nicht unterstützt wird
- Die Verwendung von --bwlimit funktioniert nicht, da das Modul Schreibvorgänge in einer temporären Datei im Speicher zwischenspeichert und dann beim Hochladen die gesamte Bandbreite verbraucht. Ich führe ein Experiment mit dem Dienstprogramm „Trickle“ durch, um zu sehen, ob das hilft.
Antwort4
Ich denke, Sie können dafür rsync verwenden, aber wenn das aus irgendeinem Grund bei Ihnen nicht funktioniert, versuchen Sie auch Folgendes:Unison Dateisynchronisierer, es funktioniert wirklich großartig!