Télécharger le dossier avec des sous-dossiers à l’aide de S3 et de la console AWS

Lorsque j’essaie de télécharger un dossier avec des sous-dossiers vers S3 via la console AWS, seuls les fichiers sont téléchargés, pas les sous-dossiers.

Vous ne pouvez pas non plus sélectionner un dossier. Il faut toujours ouvrir le dossier avant de pouvoir sélectionner quelque chose.

Est-ce seulement possible?

La console Amazon S3 prend désormais en charge le téléchargement de hiérarchies de dossiers entières. Activez l’option Ehanced Uploader dans la boîte de dialog Télécharger, puis ajoutez un ou plusieurs dossiers à la queue de téléchargement.

http://console.aws.amazon.com/s3

Je vous suggère d’utiliser AWS CLI. Comme il est très facile d’utiliser la ligne de commande et awscli

aws s3 cp SOURCE_DIR s3://DEST_BUCKET/ --recursive 

ou vous pouvez utiliser la synchronisation par

  aws s3 sync SOURCE_DIR s3://DEST_BUCKET/ 

N’oubliez pas que vous devez installer aws cli et le configurer en utilisant votre ID de clé d’access et votre ID de clé d’access Secrect.

  pip install --upgrade --user awscli aws configure 

Vous n’avez pas besoin du programme de téléchargement amélioré (qui, je crois, n’existe plus) ou de tout logiciel tiers (il existe toujours un risque que quelqu’un vole vos données privées ou vos clés d’access du compartiment S3 ou même de toutes les ressources AWS).

Étant donné que le nouveau gestionnaire de téléchargement Web AWS S3 prend en charge le glisser -déposer pour les fichiers et les dossiers , connectez-vous simplement à https://console.aws.amazon.com/s3/home et commencez à télécharger le processus comme d’habitude, puis faites glisser le dossier depuis votre ordinateur. Bureau directement sur la page S3. Si vous téléchargez des données confidentielles, assurez-vous que la page avec laquelle vous travaillez commence par le protocole https: //.

Normalement, j’utilise le Uploader amélioré disponible via la console de gestion AWS. Cependant, comme cela nécessite Java, cela peut causer des problèmes. J’ai trouvé que s3cmd était un excellent remplacement de ligne de commande. Voici comment je l’ai utilisé:

 s3cmd --configure # enter access keys, enable HTTPS, etc. s3cmd sync  s3:/// 

J’avais un problème avec la recherche de l’outil de téléchargement amélioré pour télécharger des dossiers et des sous-dossiers dans S3. Mais plutôt que de trouver un outil, je pourrais télécharger les dossiers avec les sous-dossiers à l’intérieur en les faisant simplement glisser et en les déposant dans le compartiment S3.

Remarque: cette fonctionnalité de glisser-déposer ne fonctionne pas dans Safari . Je l’ai testé dans Chrome et ça marche très bien.

Glisser déposer

Une fois que vous faites glisser et déposez les fichiers et les dossiers, cet écran s’ouvre pour télécharger le contenu.

entrer la description de l'image ici

Il convient de mentionner que si vous utilisez simplement S3 pour les sauvegardes, il vous suffit de compresser le dossier, puis de le télécharger. Cela vous permettra d’économiser du temps et des coûts de téléchargement.

Si vous ne savez pas comment effectuer une compression efficace depuis le terminal, regardez ici pour OSX.

Et $ zip -r archive_name.zip folder_to_compress pour Windows. Alternativement, un client tel que 7-Zip serait suffisant pour les utilisateurs de Windows.

Je ne vois pas les réponses de Python ici. Vous pouvez créer un script de téléchargement de dossier à l’aide de Python / boto3. Voici comment obtenir de manière récursive tous les noms de fichiers de l’arborescence de répertoires:

 def recursive_glob(treeroot, extention): results = [os.path.join(dirpath, f) for dirpath, dirnames, files in os.walk(treeroot) for f in files if f.endswith(extention)] return results 

Voici comment télécharger un fichier sur S3 à l’aide de Python / boto:

 k = Key(bucket) k.key = s3_key_name k.set_contents_from_file(file_handle, cb=progress, num_cb=20, reduced_redundancy=use_rr ) 

J’ai utilisé ces idées pour écrire Directory-Uploader-For-S3

Je me suis retrouvé ici en essayant de comprendre cela. Avec la version qui se trouve là-haut, vous pouvez y glisser et déposer un dossier et cela fonctionne, même si cela ne vous permet pas de sélectionner un dossier lorsque vous ouvrez le dialog de téléchargement.

Vous pouvez faire glisser et déposer ces dossiers. La fonctionnalité glisser-déposer est prise en charge uniquement pour les navigateurs Chrome et Firefox . S’il vous plaît se référer à ce lien https://docs.aws.amazon.com/AmazonS3/latest/user-guide/upload-objects.html

Vous pouvez utiliser Transfer Manager pour télécharger plusieurs fichiers, répertoires, etc. Plus d’informations sur:

 https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-s3-transfermanager.html 

Pensez à utiliser le logiciel gratuit CloudBerry Explorer pour télécharger la structure de dossiers complète sur Amazon S3.

Vous ne pouvez pas télécharger de structures nestedes comme celle-ci via l’outil en ligne. Je recommande d’utiliser quelque chose comme Bucket Explorer pour des téléchargements plus compliqués.