文件存储有越来越多的方式可以选择,对于直播APP来说文件存储也是非常重要的一部分,今天我们来记录下开发直播APP时,Android端使用网宿云存储的过程。
首先介绍下,网宿云存储是基于云存储技术,并在云计算概念上延伸、发展而推出的面向云的存储产品。通过先进加密技术,高可靠分布式集群和异地备份技术,保证用户数据的安全性、可靠性与可用性,并且云存储与网宿CDN系统无缝结合,实现高速上传下载。
接下来,介绍下开发直播APP时,Android端该如何接入。
为了应对不同的存储方式,实现代码时,建议使用策略模式。
首先,需要引用依赖:
gradle配置compile files('../libs/wcs-android-sdk-1.6.4.jar')
引用成功后,进行初始化(初始化主要完成upload domain设置、Client参数配置):
public VideoUploadWCSImpl(Context context) {
//PUT_URL上传路径
FileUploader.setUploadUrl(PUT_URL);
mContext = context;
ClientConfig config = new ClientConfig();
// 设置分片上传并发数为10,不配置时默认值为5
config.setMaxConcurrentRequest(10);
FileUploader.setClientConfig(config);
//设置块大小为8M,片大小为512KB
FileUploader.setBlockConfigs(8, 512);
}
private void initParams() {
mConf = new ParamsConf();
mConf.fileName = mVideoUploadBean.getVideoFile().getName();
//上传后 视频的名字
mConf.keyName = mVideoTargetName;
//上传文件类型
mConf.mimeType = "video/mp4";
FileUploader.setParams(mConf);
}
上传前,先从服务端获取文件的上传凭证,接着实现上传代码:
private void uploadFile(File srcFile) {
/**
* UPLOADER_TOKEN-上传凭证
* srcFile-本地待上传的文件
*/
FileUploader.upload(UPLOADER_TOKEN,srcFile,new FileUploaderListener() {
//监听上传过程
@Override
public void onSuccess(int status, JSONObject responseJson) {
//上传 成功,进行下一步操作
Log.d(TAG, "responseJson : " + responseJson.toString());
}
@Override
public void onFailure(OperationMessage operationMessage) {
//上传 失败,可在此继续失败流程
Log.e(TAG, "errorMessage : " + operationMessage.toString());
}
@Override
public void onProgress(int bytesWritten, int totalSize) {
//上传 进度
Log.d(TAG, String.format("Progress %d from %d (%s)", bytesWritten, totalSize, (totalSize > 0) ? ((float) bytesWritten / totalSize) * 100 : -1));
}
});
}
当然,这次实现只是简单的在直播APP开发时,Android端实现的普通上传,对应不同的需求,还有其他上传方式,大同小异,读者可自己查看文档参考。以上就是本次分享的全部内容,感兴趣可继续关注。
声明:本文由作者原创,转载须备注文章来源与作者