2017-09-05 2 views
0

J'ai une ArrayList de ImageFiles, que je veux télécharger sur Amazon s3. Leur doc fournit ce code:Amazon s3 télécharger plusieurs fichiers android

credentials = new BasicAWSCredentials(key, secret); 
s3 = new AmazonS3Client(credentials);    
transferUtility = new TransferUtility(s3, getContext()); 
observer.setTransferListener(new TransferListener() { 
@Override 
public void onStateChanged(int id, TransferState state) { 

} 

@Override 
public void onProgressChanged(int id, long bytesCurrent, long bytesTotal) { 
} 
@Override 
public void onError(int id, Exception ex) { 

               } 
              }); 
observer = transferUtility.upload(
"buket name", 
upload_file.getNew_name(), 
new File(upload_file.getFile_path())); 

Mais ce code ne prend qu'un seul fichier. Comment puis-je télécharger plusieurs fichiers à la fois? Et s'ils ne le permettent pas, l'utilisateur peut faire plus de demandes, quelle alternative pour le faire?

Répondre

0

TransferUtility classe,

http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/s3transferutility.html

https://aws.amazon.com/blogs/mobile/aws-sdk-for-android-transfer-manager-to-transfer-utility-migration-guide/

Gardé la réponse ci-dessous pour l'histoire, et la classe ci-dessous est dépréciée.

Vous devez regarder dans TransferManager classe,

http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/transfer/TransferManager.html

Il a l'option pour le téléchargement de fichiers multiples.

+0

TransferManager est obsolète, c'est le problème – iMyth

+0

Ceci est également recommandé dans la documentation avec un exemple. http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-s3-transfermanager.html. Ne voit nulle part dans la documentation qu'il est obsolète. – Kannaiyan

+0

regarder en bas, leurs doc sont la merde tout code ne fonctionne pas ou, ils ne suppriment pas simplement le vieux code – iMyth

0

Vous pouvez déplacer le code de téléchargement vers une méthode et lui transmettre le chemin du fichier. Ensuite, vous pouvez boucler cette méthode sur la liste des chemins de fichiers. Au moins c'est comme ça que je l'ai fait. Faites-moi savoir si vous avez besoin d'aide supplémentaire.