百度网盘API的操作--PCS 百度个人云存储 上传 ,下载文件

前言: 

上一篇文章讲到了BCS(百度云存储)的使用方法,本篇文章继续和大家探讨PCS(个人云存储)也就是代码和个人百度网盘的交互,实现文件上传,下载的功能,两外百度云PCS的API权限批不下来?不用怕!!!此文章教你怎么做;下一篇文章会和大家探讨百度云推送技术,谢谢大家;


正文:

实现PCS的思路和原理(以Android设备开发为例):

1.既然开发者的目的是用代码实现本地文件和百度网盘之间的传输,那么就必须先将两者连接起来,那么怎么连接呢?

开发者只要获取任一百度网盘的access_token号码,并将其加入到代码的指定位置,就能使用接口API来操作此百度网盘;下文将给出详细步骤,注意百度PCS是要申请权限的,官方迟迟不给批准,实际上我们可以利用技术绕开这一步的,欲知详情,请看下文。


2.当我们已经获得了某百度网盘的access_token号码,就可以有访问百度网盘的权利,桥梁已经搭好,只剩下怎么使用百度网盘的上传接口API和下载接口API了。下文给你获取API的demo,运行即可。


详细开发步骤:

1:获取自己百度网盘的access_token号码(百度云PCS的API权限批不下来?不用怕!!!)

直接上代码分析(注释可忽略):

注意:获取自己百度网盘的access_token号码的方法test_login()已经封装好,见本段文字下边。直接可以放进Java或者Android中调用,会进入授权页面,在授权页面中填入你的百度网盘的账号和密码,就会在屏幕上显示出你的access_token号码,你可以截屏记录下来,方便下一步骤使用;

   private void test_login(){

//    	try {
//    		BaiduPCSClient pcsApi = new BaiduPCSClient();
//    		
//    		pcsApi.startOAuth(this, mbApiKey, new BaiduPCSClient.OAuthListener() {
//				
//				public void onException(String msg) {
//					// TODO Auto-generated method stub
//					Toast.makeText(getApplicationContext(), "Login failed " + msg, Toast.LENGTH_SHORT).show();
//				}
//				
//				public void onComplete(Bundle values) {
//					// TODO Auto-generated method stub
//					if(null != values){
//						mbOauth = values.getString(BaiduPCSClient.Key_AccessToken);
//						Toast.makeText(getApplicationContext(), "Token: " + mbOauth + "    User name:" + values.getString(BaiduPCSClient.Key_UserName), Toast.LENGTH_SHORT).show();
//					}
//				}
//				
//				public void onCancel() {
//					// TODO Auto-generated method stub
//					Toast.makeText(getApplicationContext(), "Login cancelled", Toast.LENGTH_SHORT).show();
//				}
//			});
//    		
//    	} catch (Exception e) {
//    		// TODO Auto-generated catch block
//    		e.printStackTrace();
//    	}
		BaiduOAuth oauthClient = new BaiduOAuth();
		oauthClient.startOAuth(this, mbApiKey, new String[]{"basic", "netdisk"}, new BaiduOAuth.OAuthListener() {
			public void onException(String msg) {
				Toast.makeText(getApplicationContext(), "Login failed " + msg, Toast.LENGTH_SHORT).show();
			}
			public void onComplete(BaiduOAuthResponse response) {
				if(null != response){
					mbOauth = response.getAccessToken();
					Toast.makeText(getApplicationContext(), "Token: " + mbOauth + "    User name:" + response.getUserName(), Toast.LENGTH_SHORT).show();
				}
			}
			public void onCancel() {
				Toast.makeText(getApplicationContext(), "Login cancelled", Toast.LENGTH_SHORT).show();
			}
		});
    }
    


2. 怎么使用上传接口API和下载接口API:

注意:注意在代码中填入你的access_token

上传文件接口API的使用:

private void test_upload(){
String mboauth="你的access_token号码";
    	if(null != mbOauth){

    		Thread workThread = new Thread(new Runnable(){
				public void run() {
					
					//String tmpFile = "sdcard/test.jpg";
			     	String tmpFile = "sdcard/myImage/2000001/upPhoto1.jpg";//上传文件的路径
				String mbRootPath= "/apps/pcstest";//百度网盘上的路径必须以/apps/  开头	
		    		BaiduPCSClient api = new BaiduPCSClient();
		    		api.setAccessToken(mbOauth);
		    		
		    		final BaiduPCSActionInfo.PCSFileInfoResponse response = api.uploadFile(tmpFile, mbRootPath + "/zzz.jpg", new BaiduPCSStatusListener(){

						@Override
						public void onProgress(long bytes, long total) {
							// TODO Auto-generated method stub
							
							
							final long bs = bytes;
							final long tl = total;

				    		mbUiThreadHandler.post(new Runnable(){
				    			public void run(){
				    				Toast.makeText(getApplicationContext(), "total: " + tl + "    sent:" + bs, Toast.LENGTH_SHORT).show();
				    			}
				    		});						
						}
						
						@Override
						public long progressInterval(){
							return 1000;
						}
		    		});
		    		
		    		mbUiThreadHandler.post(new Runnable(){
		    			public void run(){
		    				Toast.makeText(getApplicationContext(), response.status.errorCode + "  " + response.status.message + "  " + response.commonFileInfo.blockList, Toast.LENGTH_SHORT).show();
		    			}
		    		});	
				}
			});
			 
    		workThread.start();
    	}
    }

下载文件API的使用:(今天先更到这里,有需要的留言)

另外需要所有API使用方法的请访问本人上传的资源(需要3个下载分的)链接:

http://download.csdn.net/detail/u014492257/8009789



你可能感兴趣的:(Android,个人云,存储,网盘,api,upload)