2012-05-07 18 views
1

私はS3サービスに画像をアップロードするアプリケーションを作ろうとしています。ドキュメントやサンプルプロジェクトから読み込んだバケットを作成し、それにImageをアップロードするのはかなり簡単だとわかりましたが、問題はありませんが、バケットがすでに存在するかどうかをテストしてします?既存のAmazon S3バケットにアクセスする

私のコードは、Amazonのサンプルプロジェクトから取られているが、私はとにかくそれを追加します:既存のバケットへの接続方法に関する

case R.id.button_upload: 
     if (flag && fileUri != null) { 
      Uri selectedImage = fileUri; 
      String[] filePathColumn = { MediaStore.Images.Media.DATA }; 

      Cursor cursor = getContentResolver().query(selectedImage, 
        filePathColumn, null, null, null); 
      cursor.moveToFirst(); 

      int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
      String filePath = cursor.getString(columnIndex); 
      cursor.close(); 

      // Put the image data into S3. 
      try { 
       s3Client.createBucket(Constants.getPictureBucket()); 
       // I DON"T WANT TO CREATE ONE, I WANT TO CONNECT TO ONE 

       PutObjectRequest por = new PutObjectRequest(
         Constants.getPictureBucket(), 
         Constants.PICTURE_NAME, new java.io.File(filePath)); // Content 
                       // type 
                       // is 
                       // determined 
                       // by 
                       // file 
                       // extension. 
       s3Client.putObject(por); 
      } catch (Exception exception) { 
       displayAlert("Upload Failure", exception.getMessage()); 
      } 
     } 
     break; 

任意の考えを?

答えて

2

多くのバケットを作成しないでください。 1つは十分でなければならず、次にそれにフォルダがあります。

String bucket = "foo"; 
File file = new File(fileName); 
//Just set your directory 
PutObjectRequest request = new PutObjectRequest(bucket,"thumbnails/" + fileName, file) 
.withCannedAcl(CannedAccessControlList.PublicRead) 
.withMetadata(meta); 
client.putObject(request); 
+0

だから、基本的に 'String bucket = getPictureBucket()'のようなものを書いて、そのバケットに 'PutObjectRequest'を使うべきでしょうか? – thepoosh

+0

はい。写真はフォルダでも、ユニークなバケツである必要はありません。新しいバケットを作成するのではなく、バケットにサブフォルダを作成してください。 –

+0

それが存在するかどうかはどうすればテストできますか? 'listBuckets'を使うべきでしょうか?存在しなければそれを作成しますか? p.s.私が受け入れることができる前に5分... – thepoosh

関連する問題