2012-01-09 116 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

相关问题