J'ai remarqué qu'il ne semble pas y avoir d'option pour télécharger un compartiment S3 entier à partir de la AWS Management Console.
Existe-t-il un moyen facile de tout saisir dans l'un de mes seaux? Je pensais à rendre le dossier racine public, à utiliser wget
pour tout récupérer, puis à le rendre à nouveau privé, mais je ne sais pas s'il existe un moyen plus simple.
amazon-s3
amazon-web-services
rugbert
la source
la source
aws s3 sync
c'est le meilleur. Mais personne ne fait une option puissante:dryrun
. Cette option vous permet de voir ce qui serait téléchargé / téléchargé depuis / vers s3 lorsque vous utilisezsync
. Ceci est vraiment utile lorsque vous ne voulez pas écraser le contenu dans votre compartiment local ou s3. Voici comment cela est utilisé:aws s3 sync <source> <destination> --dryrun
je l'ai utilisé tout le temps avant de pousser le nouveau contenu dans un compartiment afin de ne pas télécharger les modifications indésirables.Réponses:
CLI AWS
Consultez la « Référence de commande AWS CLI » pour plus d'informations.
AWS a récemment publié ses outils de ligne de commande, qui fonctionnent un peu comme boto et peuvent être installés à l'aide de
ou
Une fois installé, vous pouvez alors simplement exécuter:
Par exemple:
téléchargera tous les objets dans
mybucket
le répertoire courant.Et affichera:
Cela téléchargera tous vos fichiers à l'aide d'une synchronisation unidirectionnelle. Il ne supprimera aucun fichier existant dans votre répertoire actuel sauf si vous le spécifiez , et il ne modifiera ni ne supprimera aucun fichier sur S3.
--delete
Vous pouvez également effectuer une synchronisation de compartiment S3 à S3 ou une synchronisation locale à S3.
Consultez la documentation et d'autres exemples .
Alors que l'exemple ci-dessus montre comment télécharger un compartiment complet, vous pouvez également télécharger un dossier de manière récursive en effectuant
Cela demandera à la CLI de télécharger tous les fichiers et les clés de dossier de manière récursive dans le
PATH/TO/FOLDER
répertoire duBUCKETNAME
compartiment.la source
aws configure
et ajoutez votreaccess key
etsecret access key
qui peut être trouvé ici .s3cmd
etCyberduck
, mais pour moi,awscli
c'était de loin le moyen le plus rapide de télécharger ~ 70 000 fichiers depuis mon compartiment.aws s3 sync
commande ne téléchargera rien, mais elle supprimera les fichiers localement s'ils n'existent pas sur S3. Consultez la documentation .Vous pouvez utiliser
s3cmd
pour télécharger votre bucket:Il existe un autre outil que vous pouvez utiliser appelé
rclone
. Il s'agit d'un exemple de code dans la documentation Rclone:la source
J'ai utilisé plusieurs méthodes différentes pour copier des données Amazon S3 sur une machine locale, y compris
s3cmd
, et de loin la plus simple est Cyberduck .Tout ce que vous devez faire est d'entrer vos informations d'identification Amazon et d'utiliser l'interface simple pour télécharger, télécharger, synchroniser l'un de vos compartiments, dossiers ou fichiers.
la source
Vous disposez de nombreuses options pour ce faire, mais la meilleure consiste à utiliser l'AWS CLI.
Voici une présentation:
Téléchargez et installez AWS CLI sur votre machine:
Configurer l'AWS CLI:
Assurez-vous de saisir des clés d' accès et des clés secrètes valides , que vous avez reçues lors de la création du compte.
Synchronisez le compartiment S3 en utilisant:
Dans la commande ci-dessus, remplacez les champs suivants:
yourbucket
>> votre bucket S3 que vous souhaitez télécharger./local/path
>> chemin dans votre système local où vous souhaitez télécharger tous les fichiers.la source
s3://
préfixe dans le nom du compartiment !!! Avecaws s3 ls
vous n'avez pas besoin de ces3://
préfixe mais vous avez besoin d'unecp
commande.Pour télécharger à l'aide de l'AWS S3 CLI:
Pour télécharger à l'aide de code, utilisez le kit SDK AWS.
Pour télécharger à l'aide de l'interface graphique, utilisez Cyberduck.
la source
aws s3 cp s3://my-bucket-name ./local-folder --recursive --include "*" --exclude "excludeFolder/*" --exclude "includeFolder/excludeFile.txt"
Pour Windows, le navigateur S3 est le moyen le plus simple que j'ai trouvé. C'est un excellent logiciel et gratuit pour une utilisation non commerciale.
la source
Si vous utilisez Visual Studio, téléchargez " AWS Toolkit for Visual Studio ".
Une fois installé, accédez à Visual Studio - AWS Explorer - S3 - Votre compartiment - Double-cliquez
Dans la fenêtre, vous pourrez sélectionner tous les fichiers. Faites un clic droit et téléchargez les fichiers.
la source
La réponse de @Layke est bonne, mais si vous avez une tonne de données et que vous ne voulez pas attendre indéfiniment, vous devriez lire " Configuration AWS CLI S3 ".
Les commandes suivantes indiquent à l'AWS CLI d'utiliser 1000 threads pour exécuter des travaux (chacun étant un petit fichier ou une partie d'une copie en plusieurs parties) et anticiper 100 000 travaux:
Après les avoir exécutés, vous pouvez utiliser la
sync
commande simple :ou
Sur un système avec CPU 4 cœurs et 16 Go de RAM, pour des cas comme le mien (fichiers de 3 à 50 Go), la vitesse de synchronisation / copie est passée d'environ 9,5 Mo / s à 700 + MiB / s, soit une augmentation de vitesse de 70x par rapport à la configuration par défaut.
la source
Utilisez cette commande avec l' AWS CLI :
la source
Une autre option qui pourrait aider certains utilisateurs d'OS X est la transmission.
C'est un programme FTP qui vous permet également de vous connecter à vos fichiers S3. Et, il a une option pour monter n'importe quel stockage FTP ou S3 en tant que dossier dans le Finder, mais ce n'est que pour une durée limitée.
la source
J'ai fait un peu de développement pour S3 et je n'ai pas trouvé de moyen simple de télécharger un bucket entier.
Si vous souhaitez coder en Java, la bibliothèque jets3t est facile à utiliser pour créer une liste de compartiments et parcourir cette liste pour les télécharger.
Tout d'abord, obtenez un ensemble de clés privées publiques à partir de la console de gestion AWS afin de pouvoir créer un objet S3service:
Ensuite, obtenez un tableau de vos objets buckets:
Enfin, parcourez ce tableau pour télécharger les objets un par un avec:
J'ai mis le code de connexion dans un singleton threadsafe. La syntaxe try / catch nécessaire a été omise pour des raisons évidentes.
Si vous préférez coder en Python, vous pouvez utiliser Boto à la place.
Après avoir parcouru BucketExplorer, " Télécharger le compartiment entier " peut faire ce que vous voulez.
la source
L'API AWS sdk ne sera la meilleure option que pour télécharger l'intégralité du dossier et du dépôt sur s3 et télécharger le seau entier de s3 localement.
Pour télécharger un dossier entier vers s3
pour télécharger le seau s3 entier localement
vous pouvez également attribuer le chemin d'accès comme BucketName / Path pour un dossier particulier en s3 à télécharger
la source
Vous pouvez le faire avec https://github.com/minio/mc :
mc prend également en charge les sessions, les téléchargements pouvant être repris, les téléchargements et bien d'autres.
mc
prend en charge les systèmes d'exploitation Linux, OS X et Windows. Écrit en Golang et publié sous Apache Version 2.0.la source
Si vous utilisez Firefox avec S3Fox, cela vous permet de sélectionner tous les fichiers (shift-select en premier et en dernier) et de cliquer avec le bouton droit et de télécharger tout ... Je l'ai fait avec plus de 500 fichiers sans problème
la source
Sous Windows, mon outil GUI préféré est Cloudberry Explorer pour S3., Http://www.cloudberrylab.com/free-amazon-s3-explorer-cloudfront-IAM.aspx . Possède un explorateur de fichiers assez soigné, une interface de type ftp.
la source
Si vous n'y avez que des fichiers (pas de sous-répertoires), une solution rapide consiste à sélectionner tous les fichiers (
click
le premier,Shift+click
le dernier) et appuyez surEnter
ouright click
et sélectionnezOpen
. Pour la plupart des fichiers de données, cela les téléchargera directement sur votre ordinateur.la source
Pour ajouter une autre option d'interface graphique, nous utilisons la fonctionnalité S3 de WinSCP . Il est très facile de se connecter, ne nécessitant que votre clé d'accès et votre clé secrète dans l'interface utilisateur. Vous pouvez ensuite parcourir et télécharger tous les fichiers dont vous avez besoin à partir de tous les compartiments accessibles, y compris les téléchargements récursifs de dossiers imbriqués.
Puisqu'il peut être difficile d'effacer de nouveaux logiciels grâce à la sécurité et que WinSCP est assez répandu, il peut être vraiment bénéfique de simplement l'utiliser plutôt que d'essayer d'installer un utilitaire plus spécialisé.
la source
L'utilisateur Windows doit télécharger S3EXPLORER à partir de ce lien qui contient également des instructions d'installation: - http://s3browser.com/download.aspx
Ensuite, fournissez des informations d'identification AWS telles que clé secrète, clé d'accès et région à s3explorer, ce lien contient des instructions de configuration pour s3explorer: Copier Coller le lien dans le navigateur: s3browser.com/s3browser-first-run.aspx
Maintenant, tous vos seaux s3 seraient visibles sur le panneau gauche de s3explorer.
Sélectionnez simplement le compartiment, puis cliquez sur le menu Seaux dans le coin supérieur gauche, puis sélectionnez Télécharger tous les fichiers dans le menu. Ci-dessous, la capture d'écran pour le même:
Écran de sélection du compartiment
Parcourez ensuite un dossier pour télécharger le compartiment à un endroit particulier
Cliquez sur OK et votre téléchargement commencera.
la source
aws sync est la solution parfaite. Il ne fait pas deux sens. C'est un sens de la source à la destination. De plus, si vous avez beaucoup d'articles dans le bucket, ce sera une bonne idée de créer d'abord le point de terminaison s3 afin que le téléchargement se fasse plus rapidement (car le téléchargement ne se fait pas via Internet mais via intranet) et sans frais
la source
Voici quelques trucs pour télécharger tous les compartiments, les lister, lister leur contenu.
/ ---------------------------- Méthodes d'extension ------------------- ------------------ /
}
la source
Vous pouvez simplement l'obtenir avec la commande s3cmd :
la source
Comme Neel Bhaat l'a expliqué dans ce blog , il existe de nombreux outils différents qui peuvent être utilisés à cette fin. Certains sont fournis par AWS, la plupart étant des outils tiers. Tous ces outils vous obligent à enregistrer votre clé de compte AWS et votre secret dans l'outil lui-même. Soyez très prudent lorsque vous utilisez des outils tiers, car les informations d'identification que vous enregistrez peuvent vous coûter la totalité de votre valeur et vous faire perdre la vie.
Par conséquent, je recommande toujours d'utiliser l' AWS CLI à cet effet. Vous pouvez simplement l'installer à partir de ce lien . Ensuite, exécutez la commande suivante et enregistrez vos clés et valeurs secrètes dans AWS CLI.
Et utilisez la commande suivante pour synchroniser votre compartiment AWS S3 avec votre machine locale. (La machine locale doit avoir installé AWS CLI)
Exemples:
1) Pour AWS S3 vers le stockage local
2) Du stockage local à AWS S3
3) Du compartiment AWS s3 à un autre compartiment
la source
Si vous souhaitez uniquement télécharger le compartiment à partir d'AWS, installez d'abord l'AWS CLI sur votre machine. Dans le terminal, changez le répertoire où vous souhaitez télécharger les fichiers et exécutez cette commande.
Si vous souhaitez également synchroniser les répertoires local et s3 (au cas où vous auriez ajouté des fichiers dans le dossier local), exécutez cette commande:
la source
L'AWS CLI est la meilleure option pour télécharger un compartiment S3 entier localement.
Installez l' AWS CLI.
Configurez l' AWS CLI pour utiliser les informations d'identification de sécurité par défaut et la région AWS par défaut.
Pour télécharger la totalité de la commande d'utilisation du compartiment S3
aws s3 sync s3: // yourbucketname localpath
Référence pour utiliser AWS cli pour différents services AWS: https://docs.aws.amazon.com/cli/latest/reference/
la source
Vous pouvez utiliser cette commande AWS cli pour télécharger l'intégralité du contenu du compartiment S3 dans le dossier local
Si vous voyez une erreur comme celle-ci
--no-verify-ssl (booléen)
Par défaut, l'AWS CLI utilise SSL lors de la communication avec les services AWS. Pour chaque connexion SSL, l'AWS CLI vérifiera les certificats SSL. Cette option remplace le comportement par défaut de vérification des certificats SSL. référence
Utilisez cette balise avec la commande --no-verify-ssl
la source
s3 sync
est déjà couverte plusieurs fois ci-dessus. + Proposer un usage--no-verify-ssl
sans expliquer ses conséquences sur la sécurité est un délit.Si le bucket est assez gros, une commande appelée
s4cmd
qui établit des connexions parallèles et améliore le temps de téléchargement:Pour l'installer sur Debian comme
Si vous avez pip:
Il lira le
~/.s3cfg
fichier s'il est présent (s'il n'est pas installés3cmd
et exécutés3cmd --configure
) ou vous pouvez le spécifier--access-key=ACCESS_KEY --secret-key=SECRET_KEY
sur la commande.Le cli est similaire à
s3cmd
. Dans votre cas, unsync
est recommandé car vous pouvez annuler le téléchargement et le redémarrer sans avoir à retélécharger les fichiers.Soyez prudent si vous téléchargez beaucoup de données (> 1 To) cela peut avoir un impact sur votre facture, calculez d'abord quel sera le coût
la source
Comme l'a dit @layke, il est préférable de télécharger le fichier à partir du cli S3, il est sûr et sécurisé. Mais dans certains cas, les gens doivent utiliser wget pour télécharger le fichier et voici la solution
Cette présélection vous obtiendra une URL publique temporaire que vous pouvez utiliser pour télécharger du contenu à partir de S3 en utilisant presign_url, dans votre cas en utilisant wget ou tout autre client de téléchargement.
la source
Essayez cette commande:
aws s3 sync yourBucketnameDirectory yourLocalDirectory
Par exemple, si le nom de votre compartiment est
myBucket
et que le répertoire local l'estc:\local
, alors:aws s3 sync s3://myBucket c:\local
Pour plus d'informations sur awscli, vérifiez cette installation de aws cli
la source