Übertragen von DigitalOcean-Räumen zwischen Regionen mit Rclone

Einführung

DigitalOcean Spaces ist ein Objektspeicherdienst, mit dem große Datenmengen einfach und kostengünstig gespeichert und verwaltet werden können.

In diesem Handbuch wird erläutert, wie Daten zwischen Spaces-Regionen migriert werden, indem Rclone zum Übertragen von Daten zwischen zwei Spaces verwendet wird. Wir zeigen, wie Sie Rclone installieren, welche Konfigurationseinstellungen für den Zugriff auf mehrere Regionen erforderlich sind und mit welchen Befehlen Sie Ihre Dateien zwischen Regionen synchronisieren und deren Integrität überprüfen können.

Erstellen von API-Schlüsseln und Suchen von Spaces-Endpunktinformationen

Bevor wir mit der Installation und Konfiguration von Rclone zum Kopieren unserer Objekte zwischen Spaces beginnen, benötigen wir einige Informationen zu unserem DigitalOcean Spaces-Konto. Wir benötigen einen Spaces-API-Schlüssel und müssen die Regionen und Namen unserer Quell- und Ziel-Spaces kennen.

Generieren eines DigitalOcean Spaces-API-Schlüssels

Befolgen Sie zum Erstellen eines DigitalOcean Spaces-API-Schlüssels den Abschnitt „Erstellen eines Zugriffsschlüssels“ unter How To Create a Dokumentation zu DigitalOcean Space API Key.

Speichern Sie die Zugangsschlüssel-ID und den geheimen Schlüssel. Wir werden sie später verwenden, um Rclone für den Zugriff auf unser Konto zu konfigurieren.

Suchen des Spaces S3-kompatiblen Endpunkts

Als nächstes müssen wir den Endpunkt für jeden Space finden. Sie können den Endpunkt des Space in der DigitalOcean-Systemsteuerung anzeigen, indem Sie den Space auswählen und die Registerkarte * Einstellungen * anzeigen:

Der Endpunkt ist immer die Region, in der Sie den Space erstellt haben, gefolgt von + .digitaloceanspaces.com +. Notieren Sie sich den Endpunkt für beide Bereiche. Werden wir diese Informationen beim Erstellen unserer "+ rclone +" - Konfiguration verwenden?

Rclone installieren

Sie können jetzt Rclone installieren. Sie können dies auf Ihrem lokalen Computer tun oder - wenn die Bandbreite begrenzt ist - Rclone auf einem Droplet installieren, das sich in der Quell- oder Ziel-Spaces-Region befindet.

Besuchen Sie den Abschnitt Downloads auf der Projektwebsite, um die Binärdateien des Dienstprogramms zu finden, die für verschiedene Plattformen kompiliert wurden. Laden Sie die komprimierte Binärdatei herunter, die dem Betriebssystem Ihres Computers entspricht, und legen Sie los.

Wenn Sie die Rclone-Zip-Datei auf Ihren Computer heruntergeladen haben, folgen Sie dem Abschnitt unten, der Ihrer Plattform entspricht.

Linux

Bevor wir das Archiv extrahieren können, müssen wir sicherstellen, dass das Dienstprogramm "+ unzip +" verfügbar ist.

Wenn Sie * Ubuntu * oder * Debian * ausführen, können Sie den lokalen Paketindex aktualisieren und + unzip + installieren, indem Sie Folgendes eingeben:

sudo apt update
sudo apt install unzip

Wenn Sie * CentOS * oder * Fedora * ausführen, können Sie + unzip + installieren, indem Sie Folgendes eingeben:

sudo yum install unzip

Navigieren Sie mit installiertem "+ unzip " zu dem Verzeichnis, in das Sie die zip-Datei " rclone +" heruntergeladen haben:

cd

Als nächstes entpacken Sie das Archiv und verschieben es in das neu erstellte Verzeichnis:

unzip rclone*
cd rclone-v*

Von hier aus können wir die Binärdatei in das Verzeichnis "+ / usr / local / bin +" kopieren, so dass sie systemweit verfügbar ist:

sudo cp rclone /usr/local/bin

Als Nächstes fügen wir die Handbuchseite zu unserem System hinzu, damit wir auf einfache Weise Hilfe zur Befehlssyntax und zu den verfügbaren Optionen erhalten. Stellen Sie sicher, dass das lokale manuelle Verzeichnis verfügbar ist, und kopieren Sie dann die Datei + rclone.1 +:

sudo mkdir -p /usr/local/share/man/man1
sudo cp rclone.1 /usr/local/share/man/man1

Aktualisieren Sie anschließend die + man + - Datenbank, um die neue Handbuchseite zum System hinzuzufügen:

sudo mandb

Schließlich können wir das Rclone-Konfigurationsverzeichnis erstellen und eine Konfigurationsdatei öffnen:

mkdir -p ~/.config/rclone
nano ~/.config/rclone/rclone.conf

Dadurch wird Ihr Texteditor mit einer neuen leeren Datei geöffnet. Fahren Sie mit dem Abschnitt über den Link fort: # configuring-rclone [Configuring Rclone], um fortzufahren.

Mac OS

Wenn Sie mit macOS arbeiten, navigieren Sie im Terminal zu dem Verzeichnis, in das Sie die zip-Datei + rclone + heruntergeladen haben:

cd

Als nächstes entpacke die Datei und verschiebe sie in das neu erstellte Verzeichnis:

unzip -a rclone*
cd rclone-v*

Vergewissern Sie sich als nächstes, dass das Verzeichnis "+ / usr / local / bin " verfügbar ist, und kopieren Sie dann die Binärdatei " rclone +" in dieses Verzeichnis:

sudo mkdir -p /usr/local/bin
sudo cp rclone /usr/local/bin

Schließlich können wir das Konfigurationsverzeichnis erstellen und eine Konfigurationsdatei öffnen:

mkdir -p ~/.config/rclone
nano ~/.config/rclone/rclone.conf

Dadurch wird Ihr Texteditor mit einer neuen leeren Datei geöffnet. Fahren Sie mit dem Abschnitt über den Link fort: # configuring-rclone [Configuring Rclone], um fortzufahren.

Windows

Wenn Sie mit Windows arbeiten, navigieren Sie zunächst im Windows-Datei-Explorer zum Verzeichnis Downloads. Wählen Sie die ZIP-Datei "+ rclone +" aus und klicken Sie mit der rechten Maustaste. Klicken Sie im angezeigten Kontextmenü auf * Alle extrahieren… *:

Befolgen Sie die Anweisungen, um die Dateien aus dem ZIP-Archiv zu extrahieren.

Das Dienstprogramm + rclone.exe + muss über die Befehlszeile ausgeführt werden. Öffnen Sie ein neues * Eingabeaufforderungsfenster * (das Programm + cmd.exe +), indem Sie auf die Windows-Schaltfläche in der unteren linken Ecke klicken, * cmd * eingeben und * Eingabeaufforderung * auswählen.

Navigieren Sie im Inneren zu dem Pfad, den Sie extrahiert haben, indem Sie Folgendes eingeben:

cd "%HOMEPATH%\Downloads\rclone*\rclone*"

Listen Sie den Verzeichnisinhalt auf, um sicherzustellen, dass Sie sich am richtigen Speicherort befinden:

dir
Output10/23/2017  01:02 PM    <DIR>          .
10/23/2017  01:02 PM    <DIR>          ..
10/23/2017  01:02 PM                17 git-log.txt
10/23/2017  01:02 PM           296,086 rclone.1
10/23/2017  01:02 PM        16,840,192 rclone.exe
10/23/2017  01:02 PM           315,539 README.html
10/23/2017  01:02 PM           261,497 README.txt
              5 File(s)     17,713,331 bytes
              2 Dir(s)  183,296,266,240 bytes free

Sie müssen sich in diesem Verzeichnis befinden, wenn Sie den Befehl + rclone.exe + verwenden möchten.

Als Nächstes können wir das Konfigurationsverzeichnis erstellen und eine Konfigurationsdatei öffnen, um unsere S3- und Spaces-Anmeldeinformationen zu definieren:

mkdir "%HOMEPATH%\.config\rclone"
notepad "%HOMEPATH%\.config\rclone\rclone.conf"

Dadurch wird Ihr Texteditor mit einer neuen leeren Datei geöffnet. Fahren Sie fort, um zu erfahren, wie Sie Ihre Spaces-Regionen in der Konfigurationsdatei definieren.

Rclone konfigurieren

Wir werden unsere beiden DigitalOcean Spaces-Regionen in der Rclone-Konfigurationsdatei als Rclone-Remotes konfigurieren. Fügen Sie den folgenden Abschnitt in die Konfigurationsdatei ein, um die erste Region zu definieren:

~ / .config / rclone / rclone.conf

[spaces-]
type = s3
env_auth = false
access_key_id =
secret_access_key =
endpoint = .digitaloceanspaces.com
acl = private

Hier definieren wir einen neuen "+ rclone +" remote "mit dem Namen" + spaces-sfo2 + ". Ändern Sie den Regionsnamen entsprechend der Spaces-Region, die Sie konfigurieren.

Wir setzen den Typ "" auf " s3 ", damit " rclone " die geeignete Art der Interaktion und Verwaltung der Remote-Speicherressource kennt. Wir werden die Zugangsdaten für die Spaces in dieser Konfigurationsdatei definieren, so dass wir " env_auth " auf " false +" setzen können.

Als nächstes setzen wir die Variablen "+ access_key_id " und " secret_access_key +" auf den Zugriffsschlüssel "Spaces" bzw. "secret key". Stellen Sie sicher, dass Sie die Werte in die mit Ihrem Konto verknüpften Anmeldeinformationen ändern.

Wir setzen den Endpunkt "+" auf den zuvor nachgeschlagenen Endpunkt "Spaces".

Schließlich setzen wir "+ acl " auf " private +", um unsere Assets zu schützen, bis wir sie freigeben möchten.

Erstellen Sie als Nächstes ein Duplikat des soeben erstellten Konfigurationsblocks und aktualisieren Sie den Namen und die Endpunktregion entsprechend Ihrer zweiten Region:

~ / .config / rclone / rclone.conf

. . .

[spaces-]
type = s3
env_auth = false
access_key_id =
secret_access_key =
endpoint = .digitaloceanspaces.com
acl = private

Der Rest der Konfiguration sollte derselbe bleiben wie für die erste Region. Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Achten Sie unter MacOS und Linux darauf, die Berechtigungen der Konfigurationsdatei zu sperren, da sich unsere Anmeldeinformationen darin befinden:

chmod 600 ~/.config/rclone/rclone.conf

Unter Windows werden nicht-administrativen Benutzern Berechtigungen verweigert, sofern dies nicht ausdrücklich gewährt wird. Daher sollten wir den Zugriff nicht manuell anpassen müssen.

Als Nächstes verwenden wir "+ rclone +", um unsere Spaces zu untersuchen und Daten zwischen ihnen zu synchronisieren.

Objekte aus S3 in Spaces kopieren

Nachdem unsere Konfiguration abgeschlossen ist, können wir unsere Dateien übertragen.

Beginnen Sie mit der Überprüfung der konfigurierten Fernbedienungen:

rclone listremotes
Outputspaces-nyc3:
spaces-sfo2:

Beide von uns definierten Regionen werden angezeigt.

Wir können die verfügbaren Spaces anzeigen, indem wir + rclone + bitten, die mit den Fernbedienungen verknüpften "Verzeichnisse" aufzulisten (achten Sie darauf, den Doppelpunkt am Ende des Remote-Namens hinzuzufügen):

rclone lsd spaces-:
Output          -1 2019-09-23 13:07:54        -1 source-space

Die obige Ausgabe zeigt an, dass ein Space mit dem Namen "+ source-space " in der Region " sfo2 +" gefunden wurde.

Sie können den Vorgang wiederholen, um die andere Region anzuzeigen:

rclone lsd spaces-:
Output          -1 2019-09-23 13:08:28        -1 destination-space

Um den Inhalt eines Space anzuzeigen, können Sie den Befehl + tree + verwenden. Übergeben Sie den Remote-Namen, gefolgt von einem Doppelpunkt und dem Namen des „Verzeichnisses“, das Sie auflisten möchten (der Space-Name):

rclone tree spaces-:
Output/
├── Photos
│   ├── 2019.01.24-23.10.27.png
│   ├── 2019.01.24-23.11.39.png
│   ├── 2019.01.24-23.18.00.png
│   ├── 2019.01.24-23.18.18.png
│   ├── 2019.01.24-23.18.30.png
│   ├── 2019.01.24-23.19.32.png
│   ├── 2019.01.24-23.23.06.png
│   ├── 2019.01.24-23.23.53.png
│   ├── 2019.01.24-23.25.14.png
│   ├── 2019.01.24-23.26.22.png
│   ├── 2019.01.25-12.43.35.png
│   ├── 2019.03.13-14.35.34.png
│   └── 2019.03.13-14.40.52.png
└── Photos.zip

1 directories, 14 files

Wenn Sie fertig sind, können Sie die Dateien zwischen Spaces kopieren, indem Sie Folgendes eingeben:

rclone sync spaces-: spaces-:

Unter der Annahme, dass alles gut gelaufen ist, beginnt "+ rclone +" mit dem Kopieren von Objekten zwischen den beiden Leerzeichen.

Wenn die Übertragung abgeschlossen ist, können Sie überprüfen, ob die Objekte übertragen wurden, indem Sie sie mit dem Unterbefehl + tree + anzeigen:

rclone tree spaces-:
Output/
├── Photos
│   ├── 2019.01.24-23.10.27.png
│   ├── 2019.01.24-23.11.39.png
│   ├── 2019.01.24-23.18.00.png
│   ├── 2019.01.24-23.18.18.png
│   ├── 2019.01.24-23.18.30.png
│   ├── 2019.01.24-23.19.32.png
│   ├── 2019.01.24-23.23.06.png
│   ├── 2019.01.24-23.23.53.png
│   ├── 2019.01.24-23.25.14.png
│   ├── 2019.01.24-23.26.22.png
│   ├── 2019.01.25-12.43.35.png
│   ├── 2019.03.13-14.35.34.png
│   └── 2019.03.13-14.40.52.png
└── Photos.zip

1 directories, 14 files

Verwenden Sie für eine zuverlässigere Überprüfung den Unterbefehl + check +, um die Objekte in beiden Regionen zu vergleichen:

rclone check spaces-: spaces-:
Output2019/09/23 14:29:11 NOTICE: S3 bucket destination-space: 0 differences found
2019/09/23 14:29:11 NOTICE: S3 bucket destination-space: 14 matching files

Dadurch werden die Hash-Werte jedes Objekts in beiden Fernbedienungen verglichen. Möglicherweise wird eine Meldung angezeigt, dass einige Hashes nicht verglichen werden konnten. In diesem Fall können Sie den Befehl mit dem "+ - size-only " -Flag (das nur anhand der Dateigröße verglichen wird) oder dem " - download +" -Flag (das jedes Objekt von beiden Remotes herunterlädt, um es lokal zu vergleichen) erneut ausführen. um die Übertragungsintegrität zu überprüfen.

Fazit

In diesem Handbuch wird erläutert, wie Sie Objekte zwischen zwei DigitalOcean Spaces-Regionen übertragen. Wir haben API-Anmeldeinformationen und Endpunktinformationen vom Spaces-Dienst gesammelt, das Dienstprogramm "+ rclone +" auf unserem lokalen Computer installiert und konfiguriert und dann alle Objekte aus einem Quellbereich in einen Zielbereich kopiert.

Der + rclone + - Client kann für viele andere Aufgaben der Objektspeicherverwaltung verwendet werden, z. B. zum Hochladen oder Herunterladen von Dateien, zum Mounten von Spaces im lokalen Dateisystem und zum Erstellen oder Löschen zusätzlicher Spaces. Weitere Informationen zu den Funktionen des Tools finden Sie auf der Seite "+ man +".

Related