2016-06-11 11 views
0

Derzeit versuche ich eine Datei, die ich in einem Eimer auf Amazon S3 habe. Ich verwende diesen Code zum Debuggen, weil ich immer eine EN0ENT/Datei nicht gefunden bekomme, wenn ich am Ende versuche, aus der Datei zu lesen.Download-Objekt von Androids Amazon S3 macht Datei unlesbar

 String str_FilePathInDevice = "/sdcard/" + "/" 
       + "RestoreFolderName" + "/" + "filname.extention"; 

     File file = new File(str_FilePathInDevice); 

     String str_Path = file.getPath().replace(file.getName(), ""); 
     File filedir = new File(str_Path); 

     try { 
      filedir.mkdirs(); 
      file.createNewFile(); 
     } catch (Exception ex1) { 
     } 

     System.out.println(file.toString()); 
     System.out.println(file.canRead()); 
     System.out.println(file.length()); 

     TransferObserver observer2 = transferUtility.download(
       "arabianbucket",  /* The bucket to upload to */ 
       "demo.txt",  /* The key for the uploaded object */ 
       file  /* The file where the data to upload exists*/ 
     ); 

     System.out.println(file.toString()); 
     System.out.println(file.canRead()); 
     System.out.println(file.length()); 

Die file.canread() wird nach dem transferutility.download-Link von true in false umgewandelt. Ich bin mir nicht sicher, warum das so ist. Kann jemand aus einem Objekt in Amazon S3 erfolgreich lesen? In meinem Manifest habe ich bereits die Berechtigungen umgedreht:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

Vielen Dank!

+0

Möchte mit diesem Benutzer chatten - http://stackoverflow.com/questions/37768060/android-downloading-from-s3-aws –

+0

Was ist der Pfad der Datei, die Sie machen? Sie sollten 'getExternalStorage()' verwenden, um den gewünschten Ordner zu erhalten. –

+0

@ cricket_007 Ich habe versucht, getExternalStorage, aber ich bin immer noch nicht in der Lage, die Datei zu öffnen. –

Antwort

0

TransferUtility bietet asynchrone Übertragungen. In Ihrem Code startet transferUtility.download einen Download und der Download geschieht in einem Hintergrundthread, um den Hauptthread nicht zu blockieren. Ich empfehle keine Dateioperation, bis die Übertragung abgeschlossen ist. Sie können dem Beobachter einen Listener anhängen und Status- und Fortschrittsänderungen abhören. Weitere Informationen finden Sie unter Store and Retrieve Files with Amazon S3.