s3cmd: KeyError: 'dest_name' lors de la tentative de copie de plusieurs fichiers


0

Je dois traiter certains fichiers dans un compartiment S3 à l'aide de hive. Le problème est que hive n'aime apparemment pas utiliser les compartiments comme des dossiers. J'ai donc décidé de créer un dossier dans un autre compartiment et de copier les fichiers via s3cmd.

Ceci est ma commande:

s3cmd -v cp s3://main.bucket/\* s3://temp.bucket/input/

s3cmd déclare alors promptement que j'ai X fichiers à transférer (généralement de l'ordre de 5k ++), puis après avoir copié un fichier, me tombe dessus avec l'erreur suivante:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    An unexpected error has occurred.
  Please report the following lines to:
   s3tools-bugs@lists.sourceforge.net
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Problem: KeyError: 'dest_name'
S3cmd:   1.0.1

Traceback (most recent call last):
  File "/usr/local/bin/s3cmd", line 2006, in <module>
    main()
  File "/usr/local/bin/s3cmd", line 1950, in main
    cmd_func(args)
  File "/usr/local/bin/s3cmd", line 614, in cmd_cp
    subcmd_cp_mv(args, s3.object_copy, "copy", "File %(src)s copied to %(dst)s")
  File "/usr/local/bin/s3cmd", line 604, in subcmd_cp_mv
    dst_uri = S3Uri(item['dest_name'])
KeyError: 'dest_name'

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    An unexpected error has occurred.
    Please report the above lines to:
   s3tools-bugs@lists.sourceforge.net
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Maintenant, ça craint.

Pensant que le problème résidait dans le transfert de seau à compartiment, j'ai décidé de créer un dossier à l'intérieur de main.bucket, et de simplement tout copier dedans. , car à ce moment-là j'étais à bout de force.

La nouvelle commande est la suivante:

s3cmd -v cp s3://main.bucket/\* s3://main.bucket/111a/

Encore une fois, il n'a copié qu'un fichier et m'a donné la même erreur.

Qu'est-ce que cela pourrait signifier? Comment puis-je réparer ça?

Merci.

Post-scriptum Si tout échoue, je suppose que je pourrais le faire via l'interface graphique d'AWS, mais la vérification manuelle de chaque case à cocher est un problème. À ma connaissance, si vous faites défiler l'écran suffisamment longtemps, les fichiers que vous avez vérifiés ci-dessus seront bêtement oubliés, ce qui vous obligera à le faire à pas de tortue.

S'il existe une méthode pour les sélectionner tous en même temps et les copier / coller dans un nouveau répertoire, ce serait génial.

Réponses:


1

Vous utilisez une très ancienne version de s3cmd. Je crois que ce bug a été corrigé dans les années qui ont suivi. Veuillez réessayer avec la branche principale github.com/s3tools/s3cmd en amont. À ce jour, 1.5.0-rc1 est la version la plus récente.


Comment mettre à jour s3cmd? Je suis sur un Mac OSX, d'ailleurs. Des commandes de mise à jour via cmd?
zack_falcon
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.