Lorsque j'essaie de télécharger un dossier avec des sous-dossiers sur 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 quoi que ce soit.
Est-ce seulement possible?
Vous n'avez pas besoin du logiciel Enhanced Uploader (qui, à mon avis, n'existe plus) ni de tout logiciel tiers (il y a toujours un risque que quelqu'un vole vos données privées ou vos clés d'accès du compartiment S3 ou même de toutes les ressources AWS).
Depuis que le nouveau gestionnaire AWS S3 Web Upload prend en charge drag'n'drop pour les fichiers et les folder, connectez-vous simplement à https://console.aws.Amazon.com/s3/home et commencez le processus de téléchargement comme d'habitude, puis faites simplement glisser le dossier de votre bureau directement vers la page S3. Si vous téléchargez des données privées sensibles, assurez-vous que la page sur laquelle vous travaillez commence par le protocole https: //.
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 à l'aide de votre identifiant de clé d'accès et de votre identifiant de clé d'accès Secrect
pip install --upgrade --user awscli
aws configure
La console Amazon S3 prend désormais en charge le téléchargement de hiérarchies de dossiers entières. Activez Ehanced Uploader dans la boîte de dialogue de téléchargement, puis ajoutez un ou plusieurs dossiers à la file de téléchargement.
J'utilise normalement le Enhanced Uploader disponible via la console de gestion AWS. Cependant, puisque cela nécessite Java, cela peut poser des problèmes. J'ai trouvé s3cmd un excellent substitut de la ligne de commande. Voici comment je l'ai utilisé:
s3cmd --configure # enter access keys, enable HTTPS, etc.
s3cmd sync <path-to-folder> s3://<path-to-s3-bucket>/
J'avais de la difficulté à trouver l'outil de téléchargement amélioré pour télécharger le dossier et les sous-dossiers qu'il contient dans S3. Mais plutôt que de trouver un outil, je pouvais télécharger les dossiers avec les sous-dossiers qu’il contient en les faisant simplement glisser et les déposer dans le compartiment S3.
Remarque: cette fonction de glisser-déposer ne fonctionne pas dans Safari. Je l'ai testé sous Chrome et cela fonctionne très bien.
Après avoir glissé/déposé les fichiers et les dossiers, cet écran s’ouvre enfin pour télécharger le contenu.
Vous pouvez glisser-déposer ces dossiers. La fonctionnalité glisser-déposer est prise en charge uniquement par les navigateurs Chrome et Firefox. Veuillez vous référer à ce lien https://docs.aws.Amazon.com/AmazonS3/latest/user-guide/upload-objects.html
Je ne vois pas les réponses Python ici . Vous pouvez envoyer des scripts de script à l'aide de Python/boto3 . Voici comment obtenir récursivement tous les noms de fichiers à partir de l'arborescence:
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
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
Il vaut la peine de mentionner que si vous utilisez simplement S3 pour les sauvegardes, vous devez simplement compresser le dossier et le télécharger. Cela vous fera économiser du temps et des coûts de téléchargement.
Si vous ne savez pas comment procéder à une compression efficace depuis le terminal, jetez un œil ici pour OSX.
Et $ Zip -r archive_name.Zip folder_to_compress
pour Windows . Sinon, un client tel que 7-Zip serait suffisant pour les utilisateurs Windows
Je me suis retrouvé ici en essayant de comprendre cela. Avec la version disponible actuellement, vous pouvez y glisser un dossier et cela fonctionne, même si cela ne vous permet pas de sélectionner un dossier lorsque vous ouvrez la boîte de dialogue de téléchargement.
Vous pouvez télécharger des fichiers par glisser-déposer ou en pointant et en cliquant. Pour télécharger des dossiers, vous devez les faire glisser. La fonctionnalité glisser-déposer est prise en charge uniquement par les navigateurs Chrome et Firefox.