2017-10-13 13 views
1

Existe-t-il un moyen de télécharger plusieurs fichiers à partir de s3 en utilisant java sdk. Je ne veux pas télécharger de sous-programmeurs, seuls les fichiers présents dans le dossier spécifié.Comment pouvons-nous télécharger plusieurs fichiers sans dossier à partir du compartiment S3 en utilisant Java SDK

Disons que j'ai un seau

BucketName: 
     Mlearn 

Keys : 
     staticConfig/cities.csv 
     staticConfig/ABC.csv 
     staticConfig/pwd.csv 
     staticConfig/Check/xyz.csv 
     staticConfig/Check/pqr.csv 

Je ne dois télécharger cities.csv, ABC.CSV et rien pwd.csv doit être téléchargé dans le sous-Check.

J'ai essayé d'utiliser le ci-dessous api

TransferManager tx=new TransferManager(getS3Client()); 

MultipleFileDownload multi=tx.downloadDirectory("Mlearn", "staticConfig", "D:/temp"); 

L'ensemble de ce sous-dossier télécharge Vérifiez aussi.

Quelqu'un peut-il vous conseiller?

Bien que je puisse lister et télécharger les fichiers un par un, ça ne va pas être efficace. Lorsque j'ai effectué le calcul du téléchargement un par un de fichiers v/s à l'aide de TransFerManager, le temps pris par TXManager était de 1,6 seconde alors que celui par seconde était de 2,9 secondes.

Par conséquent, vous souhaitez limiter l'utilisation du téléchargement manuel du fichier un par un.

Répondre

1

TransferManager ne supporte pas directement ce que vous voulez. Lors du téléchargement un par un, vous pouvez exécuter tous les téléchargements en parallèle (par exemple, en utilisant un ExecutorService) pour réduire la latence.