Comment migrer d’Amazon S3 vers des espaces DigitalOcean avec rclone

introduction

DigitalOcean Spaces est un service de stockage d’objets conçu pour faciliter et rentabiliser le stockage et la gestion de grandes quantités de données. Si vous avez déjà utilisé d’autres services de stockage d’objets, la migration des données vers Spaces peut être l’une de vos premières tâches.

Dans ce guide, nous expliquerons comment migrer des données vers DigitalOcean Spaces à partir du service de stockage de blocs S3 d’Amazon à l’aide de l’utilitaire https://rclone.org/ [+ rclone +]. Nous montrerons comment installer + rclone +, les paramètres de configuration à utiliser pour accéder aux deux services de stockage et les commandes que vous pouvez utiliser pour synchroniser vos fichiers et vérifier leur intégrité dans Spaces.

Création de clés API et recherche des propriétés de compartiment

Avant de commencer l’installation et la configuration de + rclone + pour copier nos objets dans Spaces, nous aurons besoin d’informations sur nos comptes Amazon S3 et DigitalOcean Spaces. Nous aurons besoin d’un ensemble de clés API pour les deux services que l’outil peut utiliser et nous devrons connaître les valeurs de contrainte de région et d’emplacement pour nos compartiments.

Génération d’une clé d’API DigitalOcean Spaces et recherche du point de terminaison de l’API

Pour créer une clé d’API DigitalOcean Spaces, suivez la section "Création d’une clé d’accès" de notre https://www.digitalocean.com/community/tutorials/how-to-create-a-digitalocean-space-and-api-key. # tutoriel sur la création d’une clé d’accès [Comment créer un espace DigitalOcean et une clé d’API].

Enregistrez l’ID de la clé d’accès et la clé secrète afin que nous puissions configurer + rclone + pour accéder à notre compte.

Ensuite, nous devons trouver le point de terminaison d’API approprié. Si vous avez déjà créé un espace DigitalOcean dans lequel vous souhaitez transférer vos objets, vous pouvez afficher le point de terminaison de l’espace dans le panneau de configuration de DigitalOcean en sélectionnant l’espace et en affichant l’onglet * Paramètres *:

image: https: //assets.digitalocean.com/articles/s3_migration/do_spaces_endpoint.png [Point de terminaison des espaces DigitalOcean]

Si vous n’avez pas encore créé d’espace, + rclone + peut créer automatiquement l’espace que vous sélectionnez dans le cadre du processus de copie. Le point de terminaison dans ce cas serait la région Spaces que vous souhaitez utiliser, suivie de + .digitaloceanspaces.com +. Vous pouvez trouver les régions disponibles pour les espaces dans le panneau de configuration de DigitalOcean en affichant les options de sélection de la page de création des espaces. Au moment de la rédaction de cet article, seule la région «nyc3» est disponible (avec le point de terminaison + nyc3.digitaloceanspaces.com +).

Génération d’une clé d’API Amazon S3

Si vous ne disposez pas déjà d’une clé API Amazon avec l’autorisation de gérer les actifs S3, vous devez les générer maintenant. Dans votre AWS Management Console, cliquez sur le nom de votre compte et sélectionnez * My Security Credentials * dans le menu déroulant:

image: https: //assets.digitalocean.com/articles/s3_migration/select_security_credentials.png [AWS sélectionne les informations d’identification de sécurité]

Ensuite, sélectionnez * Utilisateurs * dans le menu de gauche, puis cliquez sur le bouton * Ajouter un utilisateur *:

image: https: //assets.digitalocean.com/articles/s3_migration/add_user_button.png [bouton d’ajout d’utilisateur AWS]

Tapez un * Nom d’utilisateur * et sélectionnez * Accès par programme * dans la section * Type d’accès *. Cliquez sur le bouton * Suivant: Autorisations * pour continuer:

image: https: //assets.digitalocean.com/articles/s3_migration/user_details.png [Détails de l’utilisateur AWS]

Sur la page suivante, sélectionnez l’option * Attacher directement les stratégies existantes * en haut, puis tapez * s3read * dans le filtre * Type de stratégie *. Cochez la case de stratégie * AmazonS3ReadOnlyAccess * puis cliquez sur le bouton * Suivant: Lire * pour continuer:

image: https: //assets.digitalocean.com/articles/s3_migration/s3_read_access.png [Accès en lecture à AWS S3]

Passez en revue les détails de l’utilisateur sur la page suivante, puis cliquez sur le bouton * Créer un utilisateur * lorsque vous êtes prêt:

image: https: //assets.digitalocean.com/articles/s3_migration/create_user_button.png [AWS crée un utilisateur]

Sur la dernière page, vous verrez les informations d’identification de votre nouvel utilisateur. Cliquez sur le lien * Afficher * sous la colonne * Clé d’accès secrète * pour afficher les informations d’identification:

image: https: //assets.digitalocean.com/articles/s3_migration/aws_secret_keys.png [Clés secrètes AWS]

Copiez l’ID de clé d’accès * et la * clé d’accès secrète * dans un endroit sûr afin de pouvoir configurer + rclone + pour utiliser ces informations d’identification. Vous pouvez également cliquer sur le bouton * Télécharger le fichier .csv * pour enregistrer les informations d’identification sur votre ordinateur.

Recherche des contraintes relatives à la région et à l’emplacement du compartiment Amazon S3

Nous devons maintenant rechercher les valeurs de contrainte de région et d’emplacement pour notre compartiment S3.

Cliquez sur * Services * dans le menu supérieur et tapez * S3 * dans la barre de recherche qui apparaît. Sélectionnez le service * S3 * pour accéder à la console de gestion S3.

Nous devons rechercher le nom de la région du seau que nous souhaitons transférer. La région sera affichée à côté du nom du compartiment:

image: https: //assets.digitalocean.com/articles/s3_migration/aws_region.png [région de compartiment AWS S3]

Nous devons trouver la chaîne de région et la contrainte d’emplacement correspondante associée à la région de notre compartiment. Recherchez le nom de la région de votre compartiment dans cette charte de régions S3 d’Amazon pour rechercher les chaînes de contrainte de région et d’emplacement appropriées. Dans notre exemple, le nom de notre région est «US East (N. Virginia) ”, nous utiliserions donc` + us-east-1 + `comme chaîne de région et notre contrainte d’emplacement serait vide.

Maintenant que nous avons les informations appropriées à partir de notre compte Amazon, nous pouvons installer et configurer + rclone + en utilisant ces informations.

Installez rclone sur votre ordinateur local

Vous êtes maintenant prêt à installer https://rclone.org/ [+ rclone +] sur votre ordinateur local.

Visitez la section Downloads du site Web du projet pour trouver les fichiers binaires de l’utilitaire compilé pour différentes plates-formes. Téléchargez le fichier binaire compressé correspondant au système d’exploitation de votre ordinateur dans votre répertoire * Téléchargements * pour commencer.

Une fois que vous avez téléchargé le fichier zip «+ rclone +» sur votre ordinateur, suivez la section ci-dessous qui correspond à votre plate-forme.

Linux

Avant de pouvoir extraire l’archive, nous devrons nous assurer que l’utilitaire + unzip + est disponible.

Si vous utilisez * Ubuntu * ou * Debian *, vous pouvez mettre à jour l’index du paquet local et installer + unzip + en tapant:

sudo apt-get update
sudo apt-get install unzip

Si vous utilisez * CentOS * ou * Fedora *, vous pouvez installer + unzip + en tapant:

sudo yum install unzip

Avec + unzip + installé, accédez au répertoire où vous avez téléchargé le fichier zip + rclone +:

cd ~/Downloads

Ensuite, décompressez l’archive et accédez au nouveau répertoire:

unzip rclone*
cd rclone-v*

À partir de là, nous pouvons copier le fichier binaire dans le répertoire + / usr / local / bin + afin qu’il soit disponible dans tout le système:

sudo cp rclone /usr/local/bin

Ensuite, nous pouvons ajouter la page de manuel au système pour pouvoir obtenir facilement de l’aide sur la syntaxe de la commande et les options disponibles. Assurez-vous que le répertoire manuel local requis est disponible, puis copiez le fichier + rclone.1 +:

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

Mettez à jour la base de données + man + pour ajouter la nouvelle page de manuel au système:

sudo mandb

Enfin, nous pouvons créer le répertoire de configuration et ouvrir un fichier de configuration pour définir nos informations d’identification S3 et Spaces:

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

Cela ouvrira votre éditeur de texte avec un nouveau fichier vierge. Passez à la section sur le lien: [définissant vos comptes de stockage d’objets] pour continuer.

macOS

Si vous utilisez macOS, commencez par naviguer dans le terminal jusqu’au répertoire où vous avez téléchargé le fichier zip + rclone +:

cd ~/Downloads

Ensuite, décompressez le fichier et passez au nouveau niveau de répertoire:

unzip -a rclone*
cd rclone-v*

Ensuite, assurez-vous que le répertoire + / usr / local / bin est disponible, puis déplacez le binaire` + rclone` à l’intérieur de:

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

Enfin, nous pouvons créer le répertoire de configuration et ouvrir un fichier de configuration pour définir nos informations d’identification S3 et Spaces:

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

Cela ouvrira votre éditeur de texte avec un nouveau fichier vierge. Passez à la section sur le lien: [définissant vos comptes de stockage d’objets] pour continuer.

les fenêtres

Si vous utilisez Windows, commencez par naviguer dans le répertoire Téléchargements de l’explorateur de fichiers Windows. Sélectionnez le fichier zip + rclone + et cliquez avec le bouton droit de la souris. Dans le menu contextuel qui apparaît, cliquez sur * Extraire tout… *:

image: https: //assets.digitalocean.com/articles/s3_migration/extract_archive.png [Windows extrait le fichier zip rclone]

Suivez les instructions pour extraire les fichiers de l’archive zip.

L’utilitaire + rclone.exe + doit être exécuté à partir de la ligne de commande. Ouvrez une nouvelle * invite de commande * (programme + cmd.exe +) en cliquant sur le bouton Windows situé dans le coin inférieur gauche, en tapant * cmd * et en sélectionnant * invite de commande *.

A l’intérieur, accédez au chemin + rclone + que vous avez extrait en tapant:

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

Répertoriez le contenu du répertoire pour vérifier que vous êtes au bon endroit:

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

Vous devrez être dans ce répertoire chaque fois que vous souhaitez utiliser la commande + rclone.exe +.

Ensuite, nous pouvons créer le répertoire de configuration et ouvrir un fichier de configuration pour définir nos informations d’identification S3 et Spaces:

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

Cela ouvrira votre éditeur de texte avec un nouveau fichier vierge. Continuez à l’avance pour apprendre à définir vos comptes de stockage d’objets dans le fichier de configuration.

Configurer les comptes S3 et Spaces

Nous pouvons définir notre configuration Amazon S3 et DigitalOcean Spaces dans le nouveau fichier afin que + rclone + puisse gérer le contenu entre nos deux comptes.

Commençons par définir notre compte S3. Collez la section suivante dans le fichier de configuration:

~ / .config / rclone / rclone.conf

[s3]
type = s3
env_auth = false
access_key_id =
secret_access_key =
region =
location_constraint =
acl = private

Ici, nous définissons un nouveau + rclone + remote 'appelé + s3 + . Nous plaçons `+ type + sur + s3 + pour que + rclone + connaisse le moyen approprié pour interagir avec et gérer les ressources de stockage distantes. Nous allons définir les informations d’identification S3 dans le fichier de configuration lui-même. Nous allons donc définir + env_auth + sur + false +.

Ensuite, nous définissons les variables + access_key_id + et + + secret_access_key + sur notre clé d’accès S3 et notre clé secrète, respectivement. Veillez à remplacer les valeurs par les informations d’identification S3 associées à votre compte.

Nous avons défini la contrainte de région et d’emplacement en fonction des propriétés de notre compartiment S3 que nous avons trouvées dans le graphique de régions Amazon. Enfin, nous définissons la stratégie de contrôle d’accès sur «privé» afin que les actifs ne soient pas publics par défaut.

Nous pouvons maintenant définir une section similaire pour notre configuration des espaces DigitalOcean. Collez la section suivante dans le fichier de configuration:

~ / .config / rclone / rclone.conf

. . .

[spaces]
type = s3
env_auth = false
access_key_id =
secret_access_key =
endpoint =
acl = private

Dans cette section, nous définissons une nouvelle télécommande appelée «espaces». De nouveau, nous fixons + type + à + ​​s3 + car Spaces propose une API compatible S3. Nous désactivons + env_auth + afin de pouvoir définir les informations d’identification Spaces dans le fichier de configuration.

Ensuite, nous affectons les variables + access_key_id + et + + secret_access_key + aux valeurs générées pour notre compte DigitalOcean. Nous définissons le point de terminaison `+ end + 'sur le point de terminaison Spaces approprié déterminé précédemment. Enfin, nous définissons à nouveau le signe «+ acl » sur « privé +» afin de protéger nos actifs jusqu’à ce que nous souhaitions les partager.

Enregistrez et fermez le fichier lorsque vous avez terminé.

Sous macOS et Linux, assurez-vous de verrouiller les autorisations du fichier de configuration car nos informations d’identification sont à l’intérieur:

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

Sous Windows, les autorisations sont refusées aux utilisateurs non-administrateurs, sauf autorisation explicite. Nous ne devrions donc pas avoir à ajuster les accès manuellement.

Copier des objets de S3 vers des espaces

Maintenant que notre configuration est terminée, nous sommes prêts à transférer nos fichiers.

Commencez par vérifier les télécommandes configurées + rclone +:

rclone listremotes
Outputs3:
spaces:

Les deux sections que nous avons définies sont affichées.

Nous pouvons afficher les compartiments S3 disponibles en demandant à + ​​rclone + de répertorier les «répertoires» associés à la télécommande + s3 + (assurez-vous d’ajouter les deux points à la fin du nom distant):

rclone lsd s3:
Output          -1 2017-10-20 15:32:28        -1 source-of-files

La sortie ci-dessus indique qu’un compartiment, appelé + source-of-files + a été trouvé dans notre compte S3.

Si vous avez déjà créé un espace DigitalOcean, vous pouvez répéter la procédure pour afficher vos espaces:

rclone lsd spaces:
Output          -1 2017-10-25 19:00:35        -1 existing-space

Pour afficher le contenu d’un compartiment S3 ou d’un espace DigitalOcean, vous pouvez utiliser la commande + tree +. Indiquez le nom distant, suivi de deux points et du nom du “répertoire” que vous souhaitez répertorier (nom du compartiment ou de l’espace):

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

Lorsque vous êtes prêt, vous pouvez copier les fichiers de votre compartiment S3 dans un espace DigitalOcean en saisissant:

rclone sync s3: spaces:

Si vous n’avez pas déjà créé l’espace que vous avez sélectionné, + rclone + tentera de vous en créer un avec le nom indiqué. Cela échouera si le nom fourni est déjà utilisé par un autre compte ou s’il ne répond pas aux exigences de dénomination pour les espaces DigitalOcean (lettres minuscules, chiffres et tirets uniquement).

En supposant que tout se passe bien, + rclone + commencera à copier les objets de S3 vers Spaces.

Une fois le transfert terminé, vous pouvez vérifier visuellement que les objets ont été transférés en les affichant à l’aide de la sous-commande + tree +:

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

Pour une vérification plus robuste, utilisez la sous-commande + check + pour comparer les objets dans les deux télécommandes:

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

Cela permettra de comparer les valeurs de hachage de chaque objet dans les deux télécommandes. Il se peut que vous receviez un message indiquant que certains hachages ne peuvent pas être comparés. Dans ce cas, vous pouvez réexécuter la commande avec l’indicateur + - size-only + (qui compare uniquement en fonction de la taille du fichier) ou l’indicateur + - download + (qui télécharge chaque objet des deux télécommandes pour les comparer localement). vérifier l’intégrité du transfert.

Conclusion

Dans ce guide, nous avons expliqué comment transférer des objets d’Amazon S3 vers des espaces DigitalOcean. Nous avons créé les informations d’identification de l’API pour les deux services, installé et configuré l’utilitaire + rclone + sur notre ordinateur local, puis copié tous les objets d’un compartiment S3 dans un espace DigitalOcean.

Le client + rclone + peut être utilisé pour de nombreuses autres tâches de gestion du stockage d’objets, notamment le téléchargement ou le téléchargement de fichiers, le montage de compartiments sur le système de fichiers local et la création ou la suppression de compartiments supplémentaires. Consultez la page + man + pour en savoir plus sur les fonctionnalités fournies par l’outil.

Related