Einführung
DigitalOcean Spaces ist ein Objektspeicherdienst, mit dem große Datenmengen einfach und kostengünstig gespeichert und verwaltet werden können. Wenn Sie sich zuvor auf andere Objektspeicherdienste verlassen haben, kann die Migration von Daten zu Spaces eine Ihrer ersten Aufgaben sein.
In diesem Handbuch erfahren Sie, wie Sie Daten mit dem Dienstprogramm https://rclone.org/ [+ rclone +
] vom S3-Blockspeicherdienst von Amazon auf DigitalOcean Spaces migrieren. Wir zeigen Ihnen, wie Sie "+ rclone +" installieren, welche Konfigurationseinstellungen für den Zugriff auf beide Speicherdienste verwendet werden und mit welchen Befehlen Sie Ihre Dateien synchronisieren und deren Integrität in Spaces überprüfen können.
Erstellen von API-Schlüsseln und Auffinden von Bucket-Eigenschaften
Bevor wir mit der Installation und Konfiguration von "+ rclone +" beginnen, um unsere Objekte in Spaces zu kopieren, benötigen wir einige Informationen zu unseren Amazon S3- und DigitalOcean Spaces-Konten. Wir benötigen einen Satz von API-Schlüsseln für beide Dienste, die das Tool verwenden kann, und wir müssen die Regions- und Standortbeschränkungswerte für unsere Buckets kennen.
Generieren eines DigitalOcean Spaces-API-Schlüssels und Ermitteln des API-Endpunkts
Befolgen Sie zum Erstellen eines DigitalOcean Spaces-API-Schlüssels den Abschnitt „Erstellen eines Zugriffsschlüssels“ unter https://www.digitalocean.com/community/tutorials/how-to-create-a-digitalocean-space-and-api-key # Erstellen eines Zugriffsschlüssels [So erstellen Sie einen DigitalOcean Space und einen API-Schlüssel].
Speichern Sie die Zugriffsschlüssel-ID und den geheimen Schlüssel, damit wir "+ rclone +" für den Zugriff auf unser Konto konfigurieren können.
Als Nächstes müssen wir den entsprechenden API-Endpunkt finden. Wenn Sie bereits einen DigitalOcean-Bereich erstellt haben, in den Sie Ihre Objekte übertragen möchten, können Sie den Endpunkt des Bereichs in der DigitalOcean-Systemsteuerung anzeigen, indem Sie den Bereich auswählen und die Registerkarte "Einstellungen" anzeigen:
image: https://assets.digitalocean.com/articles/s3_migration/do_spaces_endpoint.png [DigitalOcean Spaces-Endpunkt]
Wenn Sie noch keinen Space erstellt haben, kann + rclone +
den Space, den Sie beim Kopieren ausgewählt haben, automatisch erstellen. In diesem Fall ist der Endpunkt die Spaces-Region, die Sie verwenden möchten, gefolgt von "+ .digitaloceanspaces.com ". Sie finden die verfügbaren Regionen für Spaces in der DigitalOcean-Systemsteuerung, indem Sie die Auswahloptionen auf der Seite zum Erstellen von Spaces anzeigen. Zum Zeitpunkt dieses Schreibens ist nur die Region "nyc3" verfügbar (mit dem Endpunkt " nyc3.digitaloceanspaces.com +").
Generieren eines Amazon S3-API-Schlüssels
Wenn Sie noch keinen Amazon API-Schlüssel mit der Berechtigung zum Verwalten von S3-Assets besitzen, müssen Sie diese jetzt generieren. Klicken Sie in Ihrer AWS Management Console auf Ihren Kontonamen und wählen Sie im Dropdown-Menü die Option * Meine Sicherheitsanmeldeinformationen * aus:
image: https://assets.digitalocean.com/articles/s3_migration/select_security_credentials.png [AWS wählt Sicherheitsinformationen aus]
Wählen Sie anschließend im linken Menü * Benutzer * aus und klicken Sie auf die Schaltfläche * Benutzer hinzufügen *:
image: https://assets.digitalocean.com/articles/s3_migration/add_user_button.png [AWS-Schaltfläche zum Hinzufügen von Benutzern]
Geben Sie einen * Benutzernamen * ein und wählen Sie * Programmatic access * im Abschnitt * Access type *. Klicken Sie auf die Schaltfläche * Weiter: Berechtigungen *, um fortzufahren:
image: https://assets.digitalocean.com/articles/s3_migration/user_details.png [AWS-Benutzerdetails]
Wählen Sie auf der folgenden Seite die Option * Bestehende Richtlinien direkt anhängen * oben aus und geben Sie dann * s3read * im Filter * Richtlinientyp * ein. Aktivieren Sie das Richtlinienfeld * AmazonS3ReadOnlyAccess * und klicken Sie anschließend auf die Schaltfläche * Weiter: Überprüfen *, um fortzufahren:
image: https://assets.digitalocean.com/articles/s3_migration/s3_read_access.png [AWS S3-Lesezugriff]
Überprüfen Sie die Benutzerdetails auf der nächsten Seite und klicken Sie anschließend auf die Schaltfläche * Benutzer erstellen *:
image: https://assets.digitalocean.com/articles/s3_migration/create_user_button.png [AWS-Benutzer erstellen]
Auf der letzten Seite sehen Sie die Anmeldeinformationen für Ihren neuen Benutzer. Klicken Sie auf den Link * Anzeigen * in der Spalte * Geheimer Zugriffsschlüssel *, um die Anmeldeinformationen anzuzeigen:
image: https://assets.digitalocean.com/articles/s3_migration/aws_secret_keys.png [AWS-Geheimschlüssel]
Kopieren Sie die * Zugangsschlüssel-ID * und den * geheimen Zugangsschlüssel * an einen sicheren Ort, damit Sie "+ rclone +" konfigurieren können, um diese Anmeldeinformationen zu verwenden. Sie können auch auf die Schaltfläche * .csv herunterladen * klicken, um die Anmeldeinformationen auf Ihrem Computer zu speichern.
Ermitteln der Amazon S3-Bucket-Region und der Standortbeschränkungen
Jetzt müssen wir die Regions- und Standortbeschränkungswerte für unseren S3-Bucket ermitteln.
Klicken Sie im oberen Menü auf * Dienste * und geben Sie in der angezeigten Suchleiste * S3 * ein. Wählen Sie den * S3 * -Dienst aus, um zur S3-Verwaltungskonsole zu gelangen.
Wir müssen nach dem Regionsnamen des Eimers suchen, den wir übertragen möchten. Die Region wird neben dem Bucket-Namen angezeigt:
image: https://assets.digitalocean.com/articles/s3_migration/aws_region.png [AWS S3-Bucket-Region]
Wir müssen die Regionszeichenfolge und die passende Positionsbeschränkung für die Region unseres Buckets finden. Suchen Sie unter http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region[dieses S3-Regionsdiagramm von Amazon nach dem Regionsnamen Ihres Buckets, um die entsprechenden Regions- und Standortbeschränkungszeichenfolgen zu finden. In unserem Beispiel lautet der Name unserer Region „US East (N. Virginia) ”, also würden wir" + us-east-1 + "als Regionszeichenfolge verwenden und unsere Standortbeschränkung wäre leer.
Nachdem wir die entsprechenden Informationen von unserem Amazon-Konto erhalten haben, können wir "+ rclone +" mithilfe dieser Informationen installieren und konfigurieren.
Installieren Sie rclone auf Ihrem lokalen Computer
Sie können jetzt https://rclone.org/ [+ rclone +
] auf Ihrem lokalen Computer installieren.
Besuchen Sie den Abschnitt Downloads auf der Projektwebsite, um Binärdateien des Dienstprogramms zu finden, die für verschiedene Plattformen kompiliert wurden. Laden Sie die komprimierte Binärdatei, die dem Betriebssystem Ihres Computers entspricht, in Ihr * Downloads * -Verzeichnis herunter, um zu beginnen.
Nachdem Sie die zip-Datei "+ rclone +" auf Ihren Computer heruntergeladen haben, befolgen Sie den nachstehenden Abschnitt, 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-get update
sudo apt-get 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 ~/Downloads
Als nächstes entpacke das Archiv und verschiebe es in das neue 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 können wir die Handbuchseite zum System hinzufügen, um auf einfache Weise Hilfe zur Befehlssyntax und zu den verfügbaren Optionen zu erhalten. Stellen Sie sicher, dass das von uns benötigte lokale Handbuchverzeichnis 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 die + man +
- Datenbank, um die neue Handbuchseite zum System hinzuzufügen:
sudo mandb
Schließlich können wir das Konfigurationsverzeichnis erstellen und eine Konfigurationsdatei öffnen, um unsere S3- und Spaces-Anmeldeinformationen zu definieren:
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 [Definieren Ihrer Objektspeicherkonten] fort.
Mac OS
Wenn Sie mit macOS arbeiten, navigieren Sie im Terminal zu dem Verzeichnis, in das Sie die zip-Datei + rclone +
heruntergeladen haben:
cd ~/Downloads
Als nächstes entpacken Sie die Datei und wechseln in die neue Verzeichnisebene:
unzip -a rclone*
cd rclone-v*
Stellen Sie als Nächstes sicher, dass das Verzeichnis "+ / usr / local / bin" verfügbar ist, und verschieben Sie die Binärdatei "+ rclone" in das 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, um unsere S3- und Spaces-Anmeldeinformationen zu definieren:
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 [Definieren Ihrer Objektspeicherkonten] fort.
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… *:
image: https://assets.digitalocean.com/articles/s3_migration/extract_archive.png [Windows extrahieren rclone zip-Datei]
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 Objektspeicherkonten in der Konfigurationsdatei definieren.
Konfigurieren Sie die Konten S3 und Spaces
Wir können unsere Amazon S3- und DigitalOcean Spaces-Konfiguration in der neuen Datei definieren, sodass "+ rclone +" Inhalte zwischen unseren beiden Konten verwalten kann.
Beginnen wir mit der Definition unseres S3-Kontos. Fügen Sie den folgenden Abschnitt in die Konfigurationsdatei ein:
~ / .config / rclone / rclone.conf
[s3]
type = s3
env_auth = false
access_key_id =
secret_access_key =
region =
location_constraint =
acl = private
Hier definieren wir einen neuen "+ rclone " remote "mit dem Namen" + s3 + ". Wir setzen den Typ "" auf "+ s3 ", damit " rclone " die geeignete Art der Interaktion und Verwaltung der Remote-Speicherressource kennt. Wir werden die S3-Berechtigungsnachweise in der Konfigurationsdatei selbst definieren, also setzen wir " env_auth " auf " false +".
Als nächstes setzen wir die Variablen "+ access_key_id " und " secret_access_key +" auf unseren S3-Zugriffsschlüssel bzw. den geheimen Schlüssel. Stellen Sie sicher, dass Sie die Werte in die mit Ihrem Konto verknüpften S3-Anmeldeinformationen ändern.
Wir legen die Einschränkung für Region und Standort gemäß den Eigenschaften unseres S3-Buckets fest, die wir im Amazon-Regionsdiagramm gefunden haben. Schließlich setzen wir die Zugriffssteuerungsrichtlinie auf "privat", damit Assets standardmäßig nicht öffentlich sind.
Jetzt können wir einen ähnlichen Abschnitt für unsere DigitalOcean Spaces-Konfiguration definieren. Fügen Sie den folgenden Abschnitt in die Konfigurationsdatei ein:
~ / .config / rclone / rclone.conf
. . .
[spaces]
type = s3
env_auth = false
access_key_id =
secret_access_key =
endpoint =
acl = private
In diesem Abschnitt definieren wir eine neue Fernbedienung namens "Spaces". Wieder setzen wir + type +
auf + s3 +
, da Spaces eine S3-kompatible API anbietet. Wir deaktivieren "+ env_auth +", damit wir die Spaces-Anmeldeinformationen in der Konfigurationsdatei definieren können.
Als nächstes setzen wir die Variablen "+ access_key_id " und " secret_access_key " auf die Werte, die für unser DigitalOcean-Konto generiert wurden. Wir setzen den ` Endpunkt ` auf den entsprechenden Spaces-Endpunkt, den wir zuvor festgelegt haben. Schließlich setzen wir die Option " acl " erneut auf " private +", um unsere Assets zu schützen, bis wir sie freigeben möchten.
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.
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
Outputs3:
spaces:
Beide von uns definierten Abschnitte werden angezeigt.
Wir können die verfügbaren S3-Buckets anzeigen, indem wir + rclone +
auffordern, die mit der + s3 +
-Remote verknüpften „Verzeichnisse“ aufzulisten (achten Sie darauf, den Doppelpunkt am Ende des Remote-Namens hinzuzufügen):
rclone lsd s3:
Output -1 2017-10-20 15:32:28 -1 source-of-files
Die obige Ausgabe zeigt an, dass in unserem S3-Konto ein Bucket mit dem Namen "+ source-of-files +" gefunden wurde.
Wenn Sie bereits einen DigitalOcean Space erstellt haben, können Sie den Vorgang wiederholen, um Ihre Spaces anzuzeigen:
rclone lsd spaces:
Output -1 2017-10-25 19:00:35 -1 existing-space
Um den Inhalt eines S3-Buckets oder DigitalOcean 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 (Name des Buckets oder Leerzeichens):
rclone tree s3:
Output/
├── README.txt
├── demo_dir
│ ├── demo1
│ └── demo2
└── media
├── Social Rebrand Presentation 032815.ppt
├── TechnicLauncher.jar
├── nda_template.docx
├── textfile.txt
└── the_mother_of_all_demos.mp4
2 directories, 8 files
Wenn Sie fertig sind, können Sie die Dateien von Ihrem S3-Bucket in einen DigitalOcean Space kopieren, indem Sie Folgendes eingeben:
rclone sync s3: spaces:
Wenn Sie den von Ihnen ausgewählten Space noch nicht erstellt haben, versucht "+ rclone +", einen Space mit dem angegebenen Namen für Sie zu erstellen. Dies schlägt fehl, wenn der angegebene Name bereits von einem anderen Konto verwendet wird oder wenn der Name nicht den Namensanforderungen für DigitalOcean Spaces entspricht (nur Kleinbuchstaben, Zahlen und Bindestriche).
Unter der Annahme, dass alles gut gelaufen ist, kopiert + rclone +
Objekte von S3 nach Spaces.
Wenn die Übertragung abgeschlossen ist, können Sie visuell überprüfen, ob die Objekte übertragen wurden, indem Sie sie mit dem Unterbefehl + tree +
anzeigen:
rclone tree spaces:
Output/
├── README.txt
├── demo_dir
│ ├── demo1
│ └── demo2
└── media
├── Social Rebrand Presentation 032815.ppt
├── TechnicLauncher.jar
├── nda_template.docx
├── textfile.txt
└── the_mother_of_all_demos.mp4
2 directories, 8 files
Verwenden Sie für eine zuverlässigere Überprüfung den Unterbefehl + check +
, um die Objekte in beiden Fernbedienungen zu vergleichen:
rclone check s3: spaces:
Output2017/10/25 19:51:36 NOTICE: S3 bucket dest-of-files: 0 differences found
2017/10/25 19:51:36 NOTICE: S3 bucket dest-of-files: 2 hashes could not be checked
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 von Amazon S3 nach DigitalOcean Spaces übertragen. Wir haben API-Anmeldeinformationen für beide Dienste erstellt, das Dienstprogramm "+ rclone +" auf unserem lokalen Computer installiert und konfiguriert und dann alle Objekte aus einem S3-Bucket in einen DigitalOcean Space 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 Buckets im lokalen Dateisystem und zum Erstellen oder Löschen zusätzlicher Buckets. Weitere Informationen zu den Funktionen des Tools finden Sie auf der Seite "+ man +".