Copier entre comptes S3

Pour copier entre emplacements S3, S3Client peut demander au service de copier les données côté serveur ou les faire passer par votre ordinateur. Dans ce second cas, il lit la source avec son compte et écrit la destination avec son compte ; le transfert utilise votre connexion et les ressources de votre ordinateur.

Préparer les permissions et les propriétés

La source doit être lisible et la destination accessible en écriture. Copier un dossier nécessite aussi son listage. Les tags, ACL explicites et clés KMS peuvent demander des permissions supplémentaires. Un objet archivé doit être disponible à la lecture. Un déplacement demande en plus la suppression de la source.

Pour une copie directe entre comptes, le compte signant la requête doit pouvoir lire la source et écrire la destination. Avoir ces droits séparément avec deux comptes permet un relais, mais ne garantit pas la copie directe. Les capacités et le domaine configurés ne créent aucun droit.

Une copie ordinaire conserve les métadonnées et utilise initialement Reuse source settings pour le chiffrement, mais applique la classe de stockage et l’ACL par défaut destination. Vérifiez les options de transfert, notamment si une clé KMS ne peut pas être réutilisée dans l’autre service ou si la source est SSE-C.

Configurer la copie directe

Le même domaine de copie doit désigner des comptes qui accèdent réellement aux mêmes buckets côté serveur. Si deux services indépendants partagent cet identifiant, une copie peut utiliser un autre objet portant la même clé.

  1. Ouvrez File > Accounts....
  2. Sélectionnez le compte source et cliquez sur Edit....
  3. Dans Account, consultez Direct copies between accounts.
  4. Cochez Allow direct copies with other accounts uniquement si le service permet ces copies.
  5. Renseignez Server-side copy domain avec le même identifiant dans les comptes partageant réellement le même espace de noms de buckets côté serveur.
  6. Dans Regions, éditez la région concernée si elle exige un domaine distinct. Son Server-side copy domain non vide remplace celui du compte ; un champ vide hérite du domaine du compte.
  7. Validez le dialogue de région, puis le compte avec OK.
  8. Répétez les réglages pour le compte destination.

Quand aucun domaine effectif n’est renseigné, il reste propre au compte et ne permet pas d’établir un domaine commun entre deux comptes. Dans un même compte, la case de copie entre comptes n’est pas requise, mais les domaines effectifs des deux emplacements doivent être compatibles.

Dans Edit... > Capabilities, vérifiez également Multipart upload et Multipart server-side copy lorsque le service prend en charge UploadPartCopy. N’activez que les capacités réellement disponibles. Les politiques de chiffrement, ACL et stockage doivent permettre les requêtes requises ; les réglages multipart influencent leur choix.

Comprendre le mode de copie

SituationChemin choisi
Même domaine effectif et copie entre comptes autorisée des deux côtés, si les comptes sont distinctsUne copie côté serveur peut être utilisée.
Domaines différents, ou copie directe désactivée pour l’un des comptes lorsque les comptes sont distinctsLes données passent par le poste.
Taille et réglages demandant une copie multipart, avec UploadPartCopy utilisable et un chiffrement compatibleLes parties peuvent être copiées côté serveur.
Copie directe incompatible avec une contrainte du transfertUn relais peut être nécessaire si l’envoi destination est pris en charge.

Si les permissions empêchent la copie côté serveur avec un compte, S3Client peut essayer avec l’autre compte, puis faire passer les données par votre ordinateur. Ce relais exige les permissions de lecture de la source et d’écriture de la destination. Certaines erreurs arrêtent la copie sans relais.

Lancer et vérifier la copie

Une erreur ou une interruption laisse les copies déjà terminées en destination. Une écriture peut aussi réussir avant l’échec de sa vérification. En mode Move, la source est conservée dans ce cas ; si sa suppression échoue après un transfert réussi, les deux copies peuvent rester présentes. Vérifiez les deux emplacements avant de relancer. Consultez les conséquences du déplacement.

  1. Ouvrez la source S3 dans un panneau et la destination S3 dans l’autre, sous les comptes voulus.
  2. Sélectionnez les fichiers ou dossiers source et choisissez Edit > Copy.
  3. Activez le dossier destination et choisissez Edit > Paste with options....
  4. Vérifiez Source, Destination, Copy, la classe de stockage, l’ACL et le résumé Destination encryption. Pour changer le chiffrement, cliquez sur Change encryption…, réglez New encryption: et ses paramètres, puis cliquez sur Use settings. Fournissez séparément la clé source avec Source decryption > SSE-C read key… si nécessaire.
  5. Cliquez sur Copy et répondez aux confirmations de conflit.
  6. Attendez la fin, puis vérifiez les clés et propriétés en destination.

Pour identifier le chemin réellement utilisé, sélectionnez l’opération terminée et choisissez Show details si un journal est disponible. Les requêtes CopyObject ou UploadPartCopy indiquent une copie côté serveur ; des lectures source et envois destination indiquent un relais. Activez la journalisation avant l’opération si nécessaire ; voir le suivi des opérations.