最近更新时间:2024-12-27 16:51:03
本节介绍如何快速使用云存储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";
}
存储空间是全局命名空间,相当于数据的容器,可以存储若干文件。 以下代码用于新建一个存储空间:
// 默认配置,可根据需要修改
Ks3ClientConfiguration configuration = Ks3ClientConfiguration.getDefaultConfiguration();
// 创建KS3Client实例,AccessKeyId和SecretAccessKey可以在ks3控制台上获取
Ks3Client client = new Ks3Client("AccessKeyId", "SecretAccessKey", configuration, getApplicationContext());
// 设置您访问Bucket所在地域对应的Endpoint。以北京为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com
client.setEndpoint("ks3-cn-beijing.ksyuncs.com");
CreateBucketRequest request = new CreateBucketRequest("bucketName");
request.setCannedAcl(CannedAccessControlList.Private);
client.createBucket(request, new CreateBucketResponseHandler() {
@Override
public void onSuccess(CreateBucketRequest request, CreateBucketResult result) {
Log.i("Create Bucket", "Status Code: " + result.getStatusCode());
}
@Override
public void onFailure(CreateBucketRequest request, Ks3ClientException clientException, Ks3ServiceException serviceException) {
if (clientException != null) {
Log.e("Create Bucket", "ClientException: " + clientException.getMessage());
}
if (serviceException != null) {
Log.e("Create Bucket", "ServiceException: " + serviceException.getMessage());
}
}
});
以下代码用于将指定的本地文件上传到KS3:
// 默认配置,可根据需要修改
Ks3ClientConfiguration configuration = Ks3ClientConfiguration.getDefaultConfiguration();
// 创建KS3Client实例,AccessKeyId和SecretAccessKey可以在ks3控制台上获取
Ks3Client client = new Ks3Client("AccessKeyId", "SecretAccessKey", configuration, getApplicationContext());
// 设置您访问Bucket所在地域对应的Endpoint。以北京为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com
client.setEndpoint("ks3-cn-beijing.ksyuncs.com");
File file = new File("/root/test/file.txt");
PutObjectRequest request = new PutObjectRequest("bucketName", "objectKey", file);
client.putObject(request, new PutObjectResponseHandler() {
@Override
public void onTaskSuccess(PutObjectRequest request, PutObjectResult result) {
Log.i("Put Object", "Status Code: " + result.getStatusCode());
}
@Override
public void onTaskProgress(double progress) {
Log.d("Put Object", "Progress: " + progress);
}
@Override
public void onTaskFailure(PutObjectRequest request, Ks3ClientException clientException, Ks3ServiceException serviceException) {
if (clientException != null) {
Log.e("Put Object", "ClientException: " + clientException.getMessage());
}
if (serviceException != null) {
Log.e("Put Object", "ServiceException: " + serviceException.getMessage());
}
}
@Override
public void onTaskCancel() {
Log.d("Put Object", "Task Cancel");
}
});
以下代码用于将指定的KS3文件下载到本地:
// 默认配置,可根据需要修改
Ks3ClientConfiguration configuration = Ks3ClientConfiguration.getDefaultConfiguration();
// 创建KS3Client实例,AccessKeyId和SecretAccessKey可以在ks3控制台上获取
Ks3Client client = new Ks3Client("AccessKeyId", "SecretAccessKey", configuration, getApplicationContext());
// 设置您访问Bucket所在地域对应的Endpoint。以北京为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com
client.setEndpoint("ks3-cn-beijing.ksyuncs.com");
GetObjectRequest request = new GetObjectRequest("bucketName", "objectKey");
File storeFolder = new File(Environment.getExternalStorageDirectory(), "ksyun_download");
File file = new File(storeFolder, "fileName");
client.getObject(request, new GetObjectResponseHandler(file, "bucketName", "objectKey") {
@Override
public void onSuccess(GetObjectRequest request, GetObjectResult result) {
Log.i("Get Object", "Status Code: " + result.getStatusCode());
}
@Override
public void onTaskProgress(double progress) {
Log.d("Get Object", "Progress: " + progress);
}
@Override
public void onFailure(GetObjectRequest request, Ks3ClientException clientException, Ks3ServiceException serviceException) {
if (clientException != null) {
Log.e("Get Object", "ClientException: " + clientException.getMessage());
}
if (serviceException != null) {
Log.e("Get Object", "ServiceException: " + serviceException.getMessage());
}
}
@Override
public void onTaskCancel() {
Log.d("Get Object", "Task Cancel");
}
});
纯净模式