快速入门

最近更新时间:2021-11-01 20:45:57

查看PDF

快速入门

本节介绍如何快速使用云存储Android SDK完成常见操作,如创建存储空间、上传文件、下载文件等。

本工程的更多用法请参考以下两种方式:

  • 查看demo目录(包含上传本地文件、下载文件、断点续传、设置回调等示例),详情请点击查看
  • 直接 git clone 工程

运行本工程前,您需要配置必要参数 Config,配置 Config 示例代码如下:

public class Config {
    // 测试用AK&SK
    public static final String ACCESS_KEY__ID = "<yourAccessKeyId>";
    public static final String ACCESS_KEY_SECRET = "<yourAccessSecretKey>";
    // 访问的endpoint地址
    public static final String END_POINT = "<yourEndPoint>";
    // bucket名称
    public static final String BUCKET_NAME = "<bucketName>";
    // 重试时长
    public static final int  RETRY_TIMEOUT = 3000;
    // 最大重连次数
    public static final int MAX_RETRY_TIME = 10;
  
    // 上传到bucket的object key
    public static final String OBJECT_KEY = "test.jpg";
    // 下载到本地的文件名称
    public static final String DOWNLOAD_FILE_NAME = "formKs3.jpg";
}

创建存储空间

存储空间是全局命名空间,相当于数据的容器,可以存储若干文件。 以下代码用于新建一个存储空间:

// 创建指定名称的bucket
client.createBucket(Config.BUCKET_NAME, new CreateBucketResponceHandler() {
    @Override
    public void onFailure(int i, Ks3Error ks3Error, Header[] headers, String s, Throwable throwable) {
        System.out.println("创建失败!");
    }

    @Override
    public void onSuccess(int i, Header[] headers) {
        System.out.println("创建成功!");
    }
});

存储空间的命名规范,请参见存储空间(Bucket)

您可以在创建存储空间时指定存储空间的权限存储类型

上传文件

以下代码用于将指定的本地文件上传到OSS:

String filePath = Environment.getExternalStorageDirectory().getPath();
// 待上传文件
File file = new File(filePath + "/storage/watch.jpg");
// 构造上传请求
client.putObject(Config.BUCKET_NAME, Config.OBJECT_KEY , file, new PutObjectResponseHandler() {
    @Override
    public void onTaskFailure(int i, Ks3Error ks3Error, Header[] headers, String s, Throwable throwable) {
      	// 上传失败 请求异常
        System.out.println("上传失败!");
    }

    @Override
    public void onTaskSuccess(int i, Header[] headers) {
        System.out.println("上传成功!");
    }

    @Override
    public void onTaskStart() {
	// 异步任务开启
    }

    @Override
    public void onTaskFinish() {
	// 任务结束
    }

    @Override
    public void onTaskCancel() {
	// 任务取消 可通过client.cancel(MainActivity.this);进行取消上传
    }

    @Override
    public void onTaskProgress(double v) {
	// 任务进度 这里可以得到上传的进度
    }
});

下载指定文件

以下代码用于将指定的OSS文件下载到本地文件:

// 下载文件的存放位置
String filePath = Environment.getExternalStorageDirectory().getPath();
File destFile = new File(filePath + "/storage/" + Config.DOWNLOAD_FILE_NAME);
// 请求下载指定的文件
client.getObject(this, Config.BUCKET_NAME, Config.OBJECT_KEY, new GetObjectResponseHandler(destFile, false) {
    @Override
    public void onTaskProgress(double v) {
	// 下载的进度
    }

    @Override
    public void onTaskStart() {
	// 下载任务开始
    }

    @Override
    public void onTaskFinish() {
	// 下载任务完成
    }

    @Override
    public void onTaskCancel() {
	// 下载任务取消 取消操作与取消上传是一样的
    }

    @Override
    public void onTaskSuccess(int i, Header[] headers, GetObjectResult getObjectResult) {
        System.out.println("下载成功");
    }

    @Override
    public void onTaskFailure(int i, Ks3Error ks3Error, Header[] headers, Throwable throwable, File file) {
        System.out.println("下载失败");
    }
});

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈