全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

快速入门(Android)

最近更新时间:2024-12-27 16:51:03

快速入门

本节介绍如何快速使用云存储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";
}

创建存储空间

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

// 默认配置,可根据需要修改
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");
    }
});

纯净模式常规模式

纯净模式

点击可全屏预览文档内容