2016-06-11 10 views
0

現在、私はAmazon S3上のバケットにあるファイルをダウンロードしようとしています。最後にファイルから読み込もうとするとEN0ENT /ファイルが見つからないため、このコードを使用してデバッグしています。AndroidのAmazon S3からオブジェクトをダウンロードすると、ファイルが読み取れなくなる

 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()); 

file.canread()は、transferutility.downloadリンクの後に真から偽になります。なぜこれが当てはまるのか私は特に分かりません。誰もがAmazon S3のオブジェクトから正常に読み込む方法を知っていますか?私のマニフェストでは、私は既にパーミッションを逆転しています:

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

ありがとう!

+0

このユーザーとチャットする可能性があります - http://stackoverflow.com/questions/37768060/android-downloading-from-s3-aws –

+0

作成しているファイルのパスは何ですか?あなたはあなたが望むフォルダを得るために 'getExternalStorage()'を使うべきです。 –

+0

@ cricket_007私はgetExternalStorageを試しましたが、まだファイルを開くことができないようです。 –

答えて

0

TransferUtilityは、非同期転送を提供します。あなたのコードではtransferUtility.downloadがダウンロードを開始し、メインスレッドをブロックしないようにバックグラウンドスレッドでダウンロードが行われます。転送が完了するまで、ファイル操作はお勧めしません。オブザーバーにリスナーを接続して、ステータスおよび進行状況の変更を聞くことができます。詳細については、Store and Retrieve Files with Amazon S3を参照してください。

関連する問題