Dateien mit rclone nach Wasabi exportieren
Exportieren Sie mit rclone copy ein lokales Verzeichnis nach Wasabi und behalten
Sie dabei Dateien, die bereits ausschließlich am Ziel vorhanden sind. Vergleichen Sie anschließend
mit rclone check --download --one-way die hochgeladenen Bytes mit Ihren lokalen Dateien. Diese Anleitung
verwendet einen privaten Bucket und ein bestimmtes Präfix, zeigt eine Vorschau der Übertragung und
macht aus denselben Befehlen einen wiederholbaren Export.
Bucket auswählen und Kosten prüfen
Sie benötigen ein Wasabi-Konto, einen vorhandenen privaten Bucket, dessen Speicherregion und Zugriffsschlüssel, die das Auflisten, Hochladen und Lesen von Objekten im gewählten Präfix erlauben. Falls Sie noch keinen Bucket haben, erstellen Sie zuerst einen in der Wasabi-Konsole. Lassen Sie den öffentlichen Zugriff deaktiviert. Die Konfiguration eines rclone-Remotes erstellt keinen Bucket; die folgenden Befehle verwenden bewusst einen vorhandenen.
Wasabi bietet eine S3-kompatible API. Im regulären Pay-Go-Tarif gelten eine monatliche Mindestabrechnung von 1 TB und eine Mindestspeicherdauer von 90 Tagen. Wenn Sie Objekte früher löschen, können für die verbleibenden Tage weiterhin Gebühren anfallen. Kostenloser ausgehender Datenverkehr ist für monatliche Downloads vorgesehen, die Ihr aktives Speichervolumen nicht übersteigen. Wiederholte Überschreitungen können zu Diensteinschränkungen oder einer Sperrung führen. Auch für kostenlose API-Anfragen gilt eine Richtlinie zur angemessenen Nutzung. Prüfen Sie anhand der Preis-FAQ von Wasabi die Bedingungen Ihres Tarifs, bevor Sie Testdaten hochladen. Ein kleiner Export bedeutet nicht automatisch eine kleine Monatsrechnung.
rclone für Wasabi konfigurieren
Installation
Installieren Sie rclone anhand der offiziellen Installationsanleitung und prüfen Sie dann die Version:
rclone version
Die Shell-Beispiele verwenden Bash unter Linux. Die Übertragungsbefehle wurden mit rclone 1.75.1 gegen einen lokalen S3-kompatiblen Dienst getestet. Das bestätigt weder die Berechtigungen eines aktiven Wasabi-Kontos noch die regionale Erreichbarkeit. Lassen Sie das Quellverzeichnis beim Kopieren und Prüfen unverändert. Diese Beispiele exportieren reguläre Dateien, kein vollständiges Dateisystem-Backup mit Berechtigungen und symbolischen Links.
Konfiguration
Starten Sie die interaktive Konfiguration:
rclone config
Verwenden Sie diese Werte gemäß der rclone-Einrichtungsanleitung von Wasabi. Geben Sie die Werte für Backend und Anbieter ein, statt sich auf Menünummern zu verlassen, die sich ändern können:
- Erstellen Sie ein Remote mit dem Namen
wasabi. - Setzen Sie das Storage-Backend auf
s3und anschließend den Anbieter aufWasabi. - Setzen Sie
env_authauffalseund geben Sie bei den Eingabeaufforderungen Ihren Wasabi-Zugriffsschlüssel und geheimen Schlüssel ein. Die Eingabeaufforderungen bezeichnen sie als AWS-Zugangsdaten, da dies das S3-Backend ist. - Lassen Sie
regionwie in der Wasabi-Anleitung leer und setzen Sieendpointauf die Dienst-URL für die tatsächliche Region Ihres Buckets. - Lassen Sie
location_constraintfür diesen vorhandenen Bucket leer. Dieser Wert wird beim Erstellen von Buckets verwendet. - Setzen Sie
aclaufprivate, lassen Sie die übrigen Optionen auf ihren Standardwerten und speichern Sie das Remote.
US East 1 akzeptiert beispielsweise s3.us-east-1.wasabisys.com oder
s3.wasabisys.com; Amsterdam verwendet s3.eu-central-1.wasabisys.com. Gleichen Sie den
Bucket-Standort mit der Endpunkttabelle von Wasabi ab.
Die Konsolen-URL ist kein S3-Endpunkt. Eine private Objekt-ACL hebt keine öffentliche
Bucket-Richtlinie auf.
Sicherheitsaspekte
Halten Sie Zugangsdaten aus Skripten und Argumenten für Shell-Befehle heraus. Ermitteln Sie die tatsächlich verwendete Konfigurationsdatei mit:
rclone config file
Beschränken Sie den Zugriff auf diese Datei und ihre Backups. Geben Sie für zeitgesteuerte Jobs
mit RCLONE_CONFIG oder --config einen expliziten
Konfigurationspfad an; siehe die
Konfigurationsdokumentation von rclone. Verwenden Sie eine eigene
Wasabi-Identität, deren Zugriff auf den vorgesehenen Bucket und das Präfix begrenzt ist. Ein
Kopierjob benötigt keine Berechtigung zum Löschen von Zielobjekten. Für die optionale Spiegelung
weiter unten in diesem Artikel ist sie jedoch erforderlich.
Verzeichnis kopieren und Inhalt prüfen
Dateien kopieren
Legen Sie in einer Bash-Sitzung einen absoluten lokalen Quellpfad fest und ersetzen Sie den
Bucket-Namen unten. Verwenden Sie ein Präfix, das für diesen Export reserviert ist, etwa
exports/project-a, statt des Bucket-Stammverzeichnisses:
src='/absolute/path/to/export'
dst='wasabi:your-existing-bucket/exports/project-a'
rclone lsf "$dst" --recursive
Eine leere Auflistung kann auf ein neues Präfix hinweisen. Ein Exit-Status ungleich null bedeutet, dass Sie den Fehler beheben müssen, bevor Sie fortfahren. Zeigen Sie eine Vorschau der ausgewählten Dateien an, ohne sie hochzuladen:
rclone copy "$src" "$dst" --s3-no-check-bucket --checksum --exclude '*.tmp' --dry-run
Die Option --s3-no-check-bucket verhindert, dass rclone
prüft, ob ein Bucket existiert, oder versucht, einen zu erstellen. Bei einem falsch geschriebenen
Bucket-Namen schlägt der Zugriff dennoch fehl.
--checksum vergleicht Größe und verfügbare Prüfsummen, um zu entscheiden, ob eine
Datei ersetzt werden soll. copy behält Objekte bei, die nur am Ziel
vorhanden sind, kann aber ein vorhandenes Objekt mit demselben Namen überschreiben. Es handelt
sich nicht um ein versioniertes Backup. Siehe die
Referenz zum Kopierbefehl.
Wenn die Vorschau die gewünschte Quelle und das gewünschte Präfix zeigt, führen Sie den Kopiervorgang und danach die Prüfung aus:
rclone copy "$src" "$dst" --s3-no-check-bucket --checksum --exclude '*.tmp' &&
rclone check "$src" "$dst" --download --one-way --exclude '*.tmp'
Der Verzeichnisinhalt wird direkt unter dem Präfix abgelegt: Aus report.pdf wird
exports/project-a/report.pdf, ohne zusätzliches Verzeichnis namens
export/. Leere Verzeichnisse werden nicht zu Objekten. Bei einer leeren Quelle
kann der Vorgang erfolgreich abgeschlossen werden, ohne etwas zu übertragen. Vergewissern Sie sich,
dass Sie die erwarteten Dateien ausgewählt haben.
Hochgeladene Bytes zurücklesen
check --download liest die entfernten Daten und
vergleicht sie mit den lokalen Dateien. Dabei verlässt sich der Befehl nicht allein auf
Objektmetadaten oder ETags. --one-way erlaubt zusätzliche Dateien am Ziel,
passend zum Verhalten beim Kopieren. Dieselbe Ausschlussregel muss in beiden Befehlen stehen.
Ein erfolgreicher Abschluss bedeutet, dass die einbezogenen Quelldateien zum Prüfzeitpunkt mit ihren entfernten Gegenstücken übereinstimmen. Eine Abweichung, ein fehlendes Objekt oder ein Lesefehler führt zu einem Exit-Status ungleich null. Die Prüfung lädt die einbezogenen Objekte herunter. Planen Sie daher Zeit und Bandbreite ein und berücksichtigen Sie diesen Datenverkehr im Rahmen der Wasabi-Richtlinie für ausgehenden Datenverkehr. Bei einer nicht leeren Quelle sollte das Ergebnis eine Anzahl übereinstimmender Dateien und keine Abweichungen ausweisen.
Übertragung anpassen
Dateien filtern
Das Muster --exclude '*.tmp' in Anführungszeichen überspringt temporäre Dateien auf
jeder Verzeichnisebene. Die Anführungszeichen verhindern, dass Bash das Muster erweitert, bevor
rclone es erhält. Wird eine Datei von copy ausgeschlossen, bleibt eine
vorhandene entfernte Kopie unverändert. Wenn Sie die Auswahl ändern, wenden Sie denselben
Filter auf Vorschau, Kopiervorgang und Prüfung an.
Parallele Übertragungen
Rclone überträgt standardmäßig vier Dateien gleichzeitig. Ergänzen Sie den Kopierbefehl um
--transfers=8, wenn Messungen zeigen, dass Ihre Arbeitslast davon profitiert. Mehr
Parallelität kann auch den Ressourcenverbrauch erhöhen. Siehe die
Option --transfers.
Bandbreite steuern
Ergänzen Sie --bwlimit=10M, um die Übertragungsbandbreite auf 10 MiB/s zu begrenzen.
Wenden Sie die Option auch auf die Download-Prüfung an, wenn dort dasselbe Limit gelten soll. Die
Bandbreitendokumentation von rclone behandelt auch Zeitpläne.
Geprüften Export wiederholen
Speichern Sie dies als export-to-wasabi.sh. Das Skript akzeptiert dieselbe Quelle und
dasselbe Ziel wie die manuellen Befehle, weist ein fehlendes Quellverzeichnis zurück und stoppt,
wenn das Kopieren oder die Prüfung fehlschlägt:
#!/usr/bin/env bash
set -euo pipefail
src=${1:?Pass a local source directory}
dst=${2:?Pass a wasabi:bucket/prefix destination}
if [[ ! -d "$src" ]]; then
printf 'Source directory does not exist: %s\n' "$src" >&2
exit 1
fi
rclone copy "$src" "$dst" --s3-no-check-bucket --checksum --exclude '*.tmp'
rclone check "$src" "$dst" --download --one-way --exclude '*.tmp'
Führen Sie es mit den bereits ausgewählten Pfaden aus:
bash ./export-to-wasabi.sh "$src" "$dst"
Geben Sie für einen Scheduler absolute Pfade zu Bash, zum Skript, zur Quelle und zur
Konfigurationsdatei an. Stellen Sie sicher, dass rclone im Pfad PATH des
Jobs liegt, erfassen Sie die Ausgabe und behandeln Sie einen Status ungleich null als
fehlgeschlagenen Export. Vermeiden Sie überlappende Ausführungen. Eine erneute Ausführung kann
geänderte Dateien ersetzen, lokal entfernte Dateien bleiben jedoch im Bucket. Planen Sie dieses
Kopierskript nur zeitgesteuert ein, wenn dieses Aufbewahrungsverhalten Ihren Anforderungen
entspricht.
Dateien synchronisieren
Verwenden Sie eine Spiegelung nur, wenn Dateien gelöscht werden sollen, die ausschließlich am Ziel
vorhanden sind. Mit denselben Werten für src und
dst ändert
rclone sync nur das gewählte Zielpräfix.
Enthält es old-report.pdf, das lokal fehlt, behält copy
dieses Objekt bei, während sync es entfernt. Objekte außerhalb von
exports/project-a/ liegen außerhalb des Geltungsbereichs dieses Befehls.
Zeigen Sie die Vorschau der Spiegelung separat an:
rclone sync "$src" "$dst" --s3-no-check-bucket --checksum --exclude '*.tmp' --dry-run
Lesen Sie die geplanten Löschungen und prüfen Sie beide Pfade erneut. Eine vorhandene, aber leere
Quelle kann dazu führen, dass jedes einbezogene Objekt im Zielpräfix gelöscht wird. Ausgeschlossene
Objekte, die dem Muster .tmp entsprechen, bleiben erhalten, da dieser
Befehl --delete-excluded nicht verwendet. Eine Vorschau fixiert weder Quelle noch Ziel.
Führen Sie nur dann den folgenden Befehl aus, wenn diese Löschungen beabsichtigt sind:
rclone sync "$src" "$dst" --s3-no-check-bucket --checksum --exclude '*.tmp'
Dafür ist eine Löschberechtigung erforderlich. Einstellungen zur Objektaufbewahrung können das Löschen verhindern. Wegen der Mindestspeicherdauer von Wasabi können nach dem Löschen weiterhin Gebühren anfallen. Halten Sie diese Entscheidung getrennt vom Exportskript, das nichts löscht.
Fehlgeschlagenen Export diagnostizieren
Häufige Probleme
- Zugriff verweigert: Prüfen Sie Zugangsdaten und Berechtigungen für diesen Bucket und dieses
Präfix. Eine erfolgreiche Auflistung belegt keine Upload- oder Download-Berechtigung. Das
Auflisten aller Buckets mit
rclone lsd wasabi:kann verweigert werden, selbst wenn der Zugriff auf Ihren gewählten Bucket funktioniert. - Falscher Endpunkt oder Signaturfehler: Vergleichen Sie den Endpunkt des Remotes mit der Bucket-Region und prüfen Sie die Systemuhr. Ein Verbindungsabbruch allein belegt keine Abweichung der Region.
- Fehlende Konfiguration in einem Job: Führen Sie den Job mit dem vorgesehenen Pfad für
RCLONE_CONFIGoder--configaus und bestätigen Sie, dass das Benutzerkonto des Jobs die Datei lesen kann. - Abweichungen bei der Prüfung: Lassen Sie die Quelldateien unverändert, bestätigen Sie, dass beide Befehle dieselben Filter verwenden, und untersuchen Sie die gemeldeten Dateinamen, bevor Sie den Export akzeptieren.
Fehlersuche
Ergänzen Sie den fehlschlagenden Befehl um -v, um Informationen auf
Dateiebene zu erhalten. Verwenden Sie bei Bedarf -vv für die
Debug-Protokollierung. Entfernen Sie Zugangsdaten, sensible Pfade und Objektnamen, bevor Sie
Protokolle weitergeben. Ein Probelauf prüft die geplanten Aktionen; er belegt nicht, dass Wasabi die
späteren Schreibvorgänge erlauben wird.
Wenn Sie die Ergebnisse eines Transloadit-Workflows exportieren möchten, nutzen Sie den Robot 🤖 /wasabi/store in unserem Dienst für Dateiexport.
