最近更新时间:2023-06-08 11:30:21
本节介绍如何快速使用云存储Android SDK完成常见操作,如创建存储空间、上传文件、下载文件等。
本工程的更多用法请参考以下两种方式:
运行本工程前,您需要配置必要参数 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("创建成功!");
}
});
以下代码用于将指定的本地文件上传到KS3:
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) {
// 任务进度 这里可以得到上传的进度
}
});
以下代码用于将指定的KS3文件下载到本地:
// 下载文件的存放位置
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("下载失败");
}
});
纯净模式