OssMetro网盘简介及源代码

一 简介

     OssMetro网盘是基于阿里云OSS服务开发的一款界面美观,功能强大的网盘应用。界面采用metro风格,使用在官网.Net SDK基础上开发的OSS .NET 4.5 SDK。运行需要安装.NET 4.5 Framework。

下载地址: 点击打开链接

代码地址:https://github.com/ZhongleiYang/OssMetroClient



二 本客户端的亮点

l  Metro风格界面清新美观,资源小,可换肤,操作流畅。

l  增加压缩文件夹并上传的功能,为用户节省流量。

l  支持直接拖动多文件或多文件夹形式到客户端的上传

l  文件浏览界面模仿windows浏览界面,方便用户操作。

l  搜索文件和文件夹的功能。

l  路径导航的功能,前进,后退。

l  可以清楚看到上传和下载进度

l  可以随时取消下载和上传

l  把下载和上传记录保存起来,支持打开本地夹。方便用户下次登录可直接打开本地文件。

l  自己开发的.NET 4.5SDK上传和下载效率高

l 支持文件的排序

 

三 具体功能介绍

1 从图1可以看到登录界面有以下功能:

l  记住密码: 可以保存用户的密码到本地,使用DES加密,加密的key绑定用户的Mac地址保证安全可靠。

l  自动登录

l  换肤:见下图,一共有4种颜色可以选择:淡红色,淡蓝色,淡紫色,淡绿色

2 Bucket操作功能

l  创建Bucket

l  删除Bucket :此操作会删除该Bucket所有的文件和文件夹。

l  修改Bucket权限

操作见上图导航栏,可选中Bucket右击,或者点击上面的按钮。

 

3 文件操作功能

  为了让用户习惯用网盘,文件的浏览和操作界面模仿windows的文件浏览界面风格。

  具体功能如下:

l  创建文件夹

l  下载功能:下载文件或文件夹

l  上传功能:上传文件或文件夹,或者压缩文件夹并上传(此功能可为用户节省流量)。支持直接拖动多文件或多文件夹形式到客户端的上传

l  删除: 删除文件和文件夹

l  路径导航:前进后退

l  搜索:可搜当索前路径下的文件和文件夹。

 

操作见上图的按钮或右击文件或文件夹

 

4 下载和上传的界面:

l  保存用户所有的上传和下载记录

l  支持打开本地文件夹和删除记录

l  可视化下载和上传文件夹的进度

l  可随时取消下载和上传文件或文件夹



  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
public class GetAndUploadFileDemo { private static String TAG = "GetAndUploadFileDemo"; private OSSService ossService; private OSSBucket bucket; public void show() { ossService = OSSServiceProvider.getService(); bucket = ossService.getOssBucket("youcaidao"); // 文件的常规操作如普通上传、下载、拷贝、删除等,与Data类一致,故这里只给出断点下载和断点上传的demo resumableDownloadWithSpecConfig(); // delay(); // resumableUpload(); // delay(); // resumableDownload(); // delay(); } public void delay() { try { Thread.sleep(30 * 1000); } catch (Exception e) { e.printStackTrace(); } } // 断点上传 public void resumableUpload() { // OSSData ossData = ossService.getOssData(sampleBucket, "sample-data"); // ossData.setData(data, "raw"); // 指定需要上传的数据和它的类型 // ossData.enableUploadCheckMd5sum(); // 开启上传MD5校验 // ossData.upload(); // 上传失败将会抛出异常 OSSFile bigfFile = ossService.getOssFile(bucket, "de.jpg"); try { bigfFile.setUploadFilePath( "/storage/emulated/0/Android/data/com.qd.videorecorder/video/VMS_1439866564822.jpg", "image/jpg"); bigfFile.ResumableUploadInBackground(new SaveCallback() { @Override public void onSuccess(String objectKey) { Log.d(TAG, "[onSuccess] - " + objectKey + " upload success!"); } @Override public void onProgress(String objectKey, int byteCount, int totalSize) { Log.d(TAG, "[onProgress] - current upload " + objectKey + " bytes: " + byteCount + " in total: " + totalSize); } @Override public void onFailure(String objectKey, OSSException ossException) { Log.e(TAG, "[onFailure] - upload " + objectKey + " failed!\n" + ossException.toString()); ossException.printStackTrace(); ossException.getException().printStackTrace(); } }); } catch (FileNotFoundException e) { e.printStackTrace(); } } // 断点下载 public void resumableDownload() { OSSFile bigFile = ossService.getOssFile(bucket, "bigFile.dat"); bigFile.ResumableDownloadToInBackground( "/storage/sdcard0/src_file/bigFile.dat", new GetFileCallback() { @Override public void onSuccess(String objectKey, String filePath) { Log.d(TAG, "[onSuccess] - " + objectKey + " storage path: " + filePath); } @Override public void onProgress(String objectKey, int byteCount, int totalSize) { Log.d(TAG, "[onProgress] - current download: " + objectKey + " bytes:" + byteCount + " in total:" + totalSize); } @Override public void onFailure(String objectKey, OSSException ossException) { Log.e(TAG, "[onFailure] - download " + objectKey + " failed!\n" + ossException.toString()); ossException.printStackTrace(); } }); } // 设置相关参数的断点续传 public void resumableDownloadWithSpecConfig() { OSSFile bigFile = ossService .getOssFile(bucket, "VMS_1439866564822.jpg"); ResumableTaskOption option = new ResumableTaskOption(); option.setAutoRetryTime(2); // 默认为2次,最大3次 option.setThreadNum(2); // 默认并发3个线程,最大5个 bigFile.ResumableDownloadToInBackground( "/storage/emulated/0/Android/data/com.qd.videorecorder/video/VMS_1439866564822.jpg", new GetFileCallback() { // /storage/emulated/0/DCIM/Camera/VID_20150803_173350.mp4 @Override public void onSuccess(String objectKey, String filePath) { System.out.println("[onSuccess] - " + objectKey + " storage path: " + filePath); } @Override public void onProgress(String objectKey, int byteCount, int totalSize) { System.out.println("[onProgress] - current download: " + objectKey + " bytes:" + byteCount + " in total:" + totalSize); } @Override public void onFailure(String objectKey, OSSException ossException) { System.out.println("[onFailure] - download " + objectKey + " failed!\n" + ossException.toString()); ossException.printStackTrace(); } }); } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值