2012-01-09 143 views
0

我有以下代碼在Android中瀏覽SD卡中的文件。 但是,如何實現代碼,以便所選文件可以上傳到Amazon S3中的指定存儲桶?請大家幫忙,非常感謝。如何將選定的文件從Android上傳到Amazon S3

package sg.edu.nyp.sit.s3; 

    import java.io.File; 
    import java.util.ArrayList; 
    import java.util.List; 
    import android.app.AlertDialog; 
    import android.app.ListActivity; 
    import android.content.DialogInterface; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.ArrayAdapter; 
    import android.widget.ListView; 
    import android.widget.TextView; 

    public class FilePickS3Activity extends ListActivity { 

private List<String> item = null; 
private List<String> path = null; 
private String root="/"; 
private TextView myPath; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    myPath = (TextView)findViewById(R.id.path); 
    getDir(root); 
} 

private void getDir(String dirPath) 
{ 
    myPath.setText("Location: " + dirPath); 

    item = new ArrayList<String>(); 
    path = new ArrayList<String>(); 

    File f = new File(dirPath); 
    File[] files = f.listFiles(); 

    if(!dirPath.equals(root)) 
    { 

     item.add(root); 
     path.add(root); 

     item.add("../"); 
     path.add(f.getParent()); 

    } 

    for(int i=0; i < files.length; i++) 
    { 
      File file = files[i]; 
      path.add(file.getPath()); 
      if(file.isDirectory()) 
       item.add(file.getName() + "/"); 
      else 
       item.add(file.getName()); 
    } 

    ArrayAdapter<String> fileList = 
     new ArrayAdapter<String>(this, R.layout.row, item); 
    setListAdapter(fileList); 
} 

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 

    File file = new File(path.get(position)); 

    if (file.isDirectory()) 
    { 
     if(file.canRead()) 
      getDir(path.get(position)); 
     else 
     { 
      new AlertDialog.Builder(this) 
      .setIcon(R.drawable.ic_launcher) 
      .setTitle("[" + file.getName() + "] folder can't be read!") 
      .setPositiveButton("OK", 
        new DialogInterface.OnClickListener() { 

         public void onClick(DialogInterface dialog, int which) { 
          // TODO Auto-generated method stub 
         } 
        }).show(); 
     } 
    } 
    else 
    { 
     new AlertDialog.Builder(this) 
      .setIcon(R.drawable.ic_launcher) 
      .setTitle("[" + file.getName() + "]") 
      .setPositiveButton("OK", 
        new DialogInterface.OnClickListener() { 


         public void onClick(DialogInterface dialog, int which) { 
          // TODO Auto-generated method stub 
         } 
        }).show(); 
    } 
} 

}如果你想將數據傳輸程序,那麼你可以使用AWS SDK

+0

有你試過AWS SDK .. ?? – RAAAAM 2012-01-09 08:38:53

+0

是的,我正在使用AWS Android SDK。 – 2012-01-09 09:14:55

回答

0
+0

嗨,哪一部分是上傳文件的部分。我相信在AWSAndroidDemo示例中,它只顯示存儲桶列表。我如何在上傳代碼中實現? – 2012-01-09 09:47:57

+0

只需閱讀整個演示示例。有一個選項可以將文件分享給亞馬遜S3。 – RAAAAM 2012-01-09 11:08:33

+0

我已經從http://aws.amazon.com/sdkforandroid/下載了aws-android-sdk-1.0.4。但是src文件夾中有很多java文件。我不確定如何在Eclipse中打開和實現它們。你願意提供一些建議嗎? – 2012-01-10 03:50:41