2016-04-30 2 views
1

Comment télécharger un fichier à partir du compartiment Amazon Web Services S3 dans un dossier spécifique. A partir de maintenant, je suis l'importation du projet de l'utilitaire de transfert Amazon amazon dans mon studio android et ça fonctionne très bien, mais chaque fois que je télécharge un fichier à partir du seau AWS-S3 le fichier téléchargé dans un emplacement de stockage externe par défaut. Donc, je veux que le fichier sera téléchargé dans un dossier spécifique comme stockage/nom_du_fichier/nom_fichier.txtAndroid Amazon s3 seau

Répondre

1

Try this .. J'utilise dans mon projet capable de télécharger l'image dans le dossier particulier ..

File imageImage = new File(mContext.getDir(USER_PROFILE_DIRECTORY, Context.MODE_PRIVATE)+ ImageName).getAbsoluteFile(); 
Download(checkImage,Constants.AMAZON_BUCKET_IMAGE,ImageName); 

/** 
* To download the image from the Amazon S3 bucket and store the image locally to the particular directory 
* @param DownloadingImagePath Source path of the image file to be stored 
* @param ImageName Image file name/Object key of Amazon S3 
* @param ImageBucket Amazon S3 bucket name 
*/ 
public void Download(File DownloadingImagePath,String ImageBucket,String ImageName){ 
try{ 
     AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY); 
     AmazonS3 s3 = new AmazonS3Client(credentials); 
       java.security.Security.setProperty("networkaddress.cache.ttl" , "60"); 
       s3.setRegion(Region.getRegion(Regions.AP_SOUTHEAST_1)); 
       s3.setEndpoint("https://s3-ap-southeast-1.amazonaws.com/"); 
       TransferUtility transferUtility = new TransferUtility(s3, mContext); 
       TransferObserver observer = transferUtility.download(ImageBucket, ImageName, DownloadingImagePath); 
       observer.setTransferListener(new TransferListener() { 
        @Override 
        public void onStateChanged(int id, TransferState state) { 
         //Log.e("Amazon Stats",state.name()); 
        } 

        @Override 
        public void onProgressChanged(int id, long bytesCurrent, long bytesTotal) { 

        } 

        @Override 
        public void onError(int id, Exception ex) { 

        } 
       }); 
       } catch (Exception ignored){ 
      } 
     } 
+0

bienvenue You'r. S'il vous plaît, si cette réponse vous aide, acceptez-la. Il peut aider d'autres à résoudre comment chercher la même chose .. Encourager le codage ......... –

+0

Bonjour Andan, ..Je suis en mesure de le faire que vous me suggérez..une question plus ... J'ai tellement de fichiers dans le seau S3 mais j'ai télécharger uniquement ceux que j'ai cliqué ... Donc, je veux télécharger tous les fichiers de S3 seau dans mon loacal/stockage externe ..... Toute autre suggestion considérable .. –

+0

Mes images sont enregistrées dans un dossier à l'intérieur du compartiment, dois-je mentionner le dossier comme nom de compartiment ou le mentionner dans la clé? –

1

Vous pouvez utiliser le AWS SDK pour télécharger un fichier à l'emplacement que vous souhaitez. ou utiliser un outil CLI comme AWS CLI ou s3cmd

+0

merci beaucoup shimon –