git 微盘_GitHub - 123ufo/VdiskSDK-Android: 微盘Android客户端SDK

本文档介绍了如何使用VdiskSDK-Android,包括注册微盘开发者、配置Eclipse工程、认证登录、文件上传下载、用户信息获取、文件操作及分享功能等。提供详细的步骤和示例代码。
摘要由CSDN通过智能技术生成

VdiskSDK-Android

微盘Android SDK开发者交流群:240235926

微盘OpenAPI、全平台SDK交流群:134719337, 162285095

运行示例代码

简要描述一下使用Eclipse运行Example的步骤:

请先前往 微盘开发者中心 注册为微盘开发者, 并创建应用;

Clone或下载Github仓库中的VDiskSdk及VDiskSdk_Example两个工程,并导入Eclipse;

确保设置VDiskSdk为VDiskSdk_Example的依赖工程(Library);

进入工程VDiskSdk_Example/com.vdisk.android.example.OAuthActivity,根据应用信息修改常量CONSUMER_KEY(App Key),CONSUMER_SECRET(App Secret),REDIRECT_URL(应用回调地址);

编译并运行工程VDiskSdk_Example。

开发者常见问题FAQ(更新中)

Q:在开发者平台创建应用时,“回调地址”填什么?

A:应用回调地址对“移动客户端”应用来说对用户是不可见的,所以定义为何种形式都将不影响,但是没有定义将无法使用SDK认证登录。建议使用一个可访问的网址,例如 “ http://vdisk.weibo.com/ ”,并在代码中填入对应位置。“白名单”填写类似

Q:为何使用demo上传的文件在微盘官方网站看不到,也无法下载或查看官方网站上的文件和目录?

A:每个应用默认有属于自己的sandbox级的空间。经过特殊授权的应用可以使用basic级的公共空间。某应用自己的sandbox空间只能被本应用访问,其它应用都不能访问。用户空间隔离,申请basic权限请至“微盘开放平台-我的应用-申请basic访问权限”。

Q:SDK是否有重命名文件或目录的功能接口?

A:请使用SDK Example中的移动接口,通过传入带文件名的完整路径,达到重命名目的。

Q&A:如果您对SDK中提供的某个功能API不明确,可查看微盘 Open RESTful API文档

Usage

认证相关

实例化VDiskAuthSession

VDiskAuthSession session;

AppKeyPair appKeyPair = new AppKeyPair(CONSUMER_KEY, CONSUMER_SECRET);

session = VDiskAuthSession.getInstance(this,appKeyPair,AccessType.APP_FOLDER);

使用新浪微博认证登录

WeiboAccessToken weiboToken = new WeiboAccessToken();

weiboToken.mAccessToken = OAuthActivity.WEIBO_ACCESS_TOKEN;

session.enabledAndSetWeiboAccessToken(weiboToken);

session.authorize(OAuthActivity.this, OAuthActivity.this);

使用微盘认证登录

session.setRedirectUrl(REDIRECT_URL);

session.authorize(OAuthActivity.this, OAuthActivity.this);

登陆认证的回调方法

/**

* 认证结束后的回调方法

*

* Callback method after authentication.

*/

@Override

public void onComplete(Bundle values) {

if (values != null) {

AccessToken mToken = (AccessToken) values

.getSerializable(VDiskAuthSession.OAUTH2_TOKEN);

session.finishAuthorize(mToken);

}

startActivity(new Intent(this, VDiskTestActivity.class));

finish();

}

/**

* 认证出错的回调方法

*

* Callback method for authentication errors.

*/

@Override

public void onError(VDiskDialogError error) {

Toast.makeText(getApplicationContext(),

"Auth error : " + error.getMessage(), Toast.LENGTH_LONG).show();

}

/**

* 认证异常的回调方法

*

* Callback method for authentication exceptions.

*/

@Override

public void onVDiskException(VDiskException exception) {

// TODO Auto-generated method stub

Toast.makeText(getApplicationContext(),

"Auth exception : " + exception.getMessage(), Toast.LENGTH_LONG)

.show();

}

/**

* 认证被取消的回调方法

*

* Callback method as authentication is canceled.

*/

@Override

public void onCancel() {

Toast.makeText(getApplicationContext(), "Auth cancel",

Toast.LENGTH_LONG).show();

}

用户信息相关接口

初始化VDiskAPI

VDiskAPI mApi;

mApi = new VDiskAPI(session);

Account account = mApi.accountInfo();

account.quota; //用户微盘总空间

Account.consumed; //用户微盘已使用空间

上传下载模块

小文件上传

UploadRequest mRequest;

mRequest = mApi.putFileOverwriteRequest(path, fis, mFile.length(),

new ProgressListener() {

@Override

public long progressInterval() {

// 在这里设置进度更新间隔,缺省为0.5秒

return super.progressInterval();

}

@Override

public void onProgress(long bytes, long total) {

// 在这里可以处理进度更新

// 参数bytes:当前已完成上传的字节数

// 参数total:总字节数

// 例如 publishProgress(bytes);

}

});

大文件分段上传

ComplexUploadHandler handler = new ComplexUploadHandler(mContext) {

@Override

public void onProgress(long bytes, long total) {

publishProgress(bytes);

}

@Override

public void startedWithStatus(ComplexUploadStatus status) {

switch (status) {

case ComplexUploadStatusLocateHost:

Log.d(TAG, "Getting the nearest host...");

break;

case ComplexUploadStatusCreateFileSHA1:

Log.d(TAG, "Creating the sha1 of file");

break;

case ComplexUploadStatusInitialize:

Log.d(TAG, "Signing each segment of file...");

break;

case ComplexUploadStatusCreateFileMD5s:

Log.d(TAG, "Creating each segment's md5...");

break;

case ComplexUploadStatusUploading:

Log.d(TAG, "Uploading one segment...");

break;

case ComplexUploadStatusMerging:

Log.d(TAG, "File Merging...");

break;

default:

break;

}

}

@Override

public void finishedWithMetadata(Entry metadata) {

Log.d(TAG, "Upload success : " + metadata.fileName());

}

};

mApi.putLargeFileOverwriteRequest(mSrcPath, desPath,

mFile.length(), handler);

文件下载

File file = mApi.createDownloadDirFile(mTargetPath);

try {

mFos = new FileOutputStream(file, true);

} catch (FileNotFoundException e) {

mErrorMsg = "Couldn't create a local file to store the file";

return false;

}

VDiskFileInfo info = mApi.getFile(mPath, null, mFos, file,

new ProgressListener() {

@Override

public long progressInterval() {

// 在这里设置进度更新间隔,缺省为0.5秒

return super.progressInterval();

}

@Override

public void onProgress(long bytes, long total) {

// 在这里可以处理进度更新

// 参数bytes:当前已完成下载的字节数

// 参数total:总字节数

// 例如

mFileLen = total;

publishProgress(bytes);

}

});

文件、目录操作相关接口

下载缩略图

mApi.getThumbnail(path, mFos, ThumbSize.ICON_640x480, null);

获取文件夹下的目录信息

Entry metadata = mApi.metadata(path, null, true, false);

List contents = metadata.contents;

获取文件详细信息

Entry metadata = mApi.metadata(path, null, true, false);

metadata.fileName();// 文件名

metadata.size; // 文件大小

metadata.modified; //文件修改时间

metadata.path;//文件微盘路径

获取文件的历史版本

List contents = mApi.revisions(path, -1);

搜索

List result = mApi.search("/", keyword, -1, false);

获取文件的下载链接

VDiskLink media = mApi.media(path, false);

media.url; // 文件的下载地址

media.expires; // 下载地址的过期时间

获取用户文件和目录的操作变化记录

DeltaPage deltaPage = mApi.delta(cursor);

文件编辑相关接口

复制

Entry metadata = mApi.copy(fromPath, toPath);

新建文件夹

Entry metaData = mApi.createFolder(path);

删除

Entry metaData = mApi.delete(path);

移动

Entry metadata = mApi.move(fromPath, toPath);

还原

Entry metadata = mApi.restore(path, revision);

分享相关接口

分享

String shareLink = mApi.share(path);

取消分享

Entry metaData = mApi.cancelShare(path);

创建拷贝引用

CreatedCopyRef createCopyRef = mApi.createCopyRef(sourcePath);

通过拷贝引用保存到微盘

Entry entry = mApi.addFromCopyRef(sourceCopyRef, targetPath);

根据拷贝引用获取下载链接

VDiskLink link = mApi.getLinkByCopyRef(sourceCopyRef);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值