全部文档
当前文档

暂无内容

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

文档中心

Java SDK快速入门

最近更新时间:2023-01-05 17:11:00

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

前提条件

已安装JAVA SDK。详情请参见安装

创建存储空间

Bucket是存放Object的容器,所有的Object都必须存放在特定的Bucket中。
以下代码用于创建一个Bucket

public void createBucketSimple(){
       // yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
       String endpoint = "yourEndpoint";
       // 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
       String accessKeyId = "yourAccessKeyId";
       String accessKeySecret = "yourAccessKeySecret";
       // 创建Ks3ClientConfig 实例。
       Ks3ClientConfig config = new Ks3ClientConfig();
       // 设置域名
       config.setEndpoint(endpoint);
       // 创建Ks3Client实例
       Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
       // 创建桶                 
       client.createBucket("<您的bucket名称>");

}

上传文件

以下代码用于通过文件上传的方式将文件上传到KS3。

// yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
String endpoint = "yourEndpoint";
// 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
String accessKeyId = "yourAccessKeyId";
String accessKeySecret = "yourAccessKeySecret";
// 创建Ks3ClientConfig 实例。
Ks3ClientConfig config = new Ks3ClientConfig();
// 设置域名
config.setEndpoint(endpoint); 
/**
 * false: (推荐)使用三级域名:{bucketName}.{endpoint}/{objectKey}的形式访问
 * true:  使用二级域名:{endpoint}/{bucketName}/{objectKey}的形式访问
 * 如果domainMode设置为true,则pathStyleAccess可忽略设置
 */
config.setPathStyleAccess(false);

// 创建Ks3Client实例
Ks3 client = new Ks3Client(accessKeyId,accessKeySecret,config);
// 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。
File file = new File("D:\\localpath\\examplefile.txt");
// 依次填写Bucket名称(例如examplebucket)和Object完整路径(例如exampledir/exampleobject.txt)。Object完整路径中不能包含Bucket名称。
client.putObject("examplebucket", "exampledir/exampleobject.txt", file);

下载文件

以下代码用于流式下载examplebucket中的exampleobject.txt文件。

public GetObjectResult getObject(){
       // yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
       String endpoint = "yourEndpoint";
       // 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
       String accessKeyId = "yourAccessKeyId";
       String accessKeySecret = "yourAccessKeySecret";
       // 创建Ks3ClientConfig 实例。
       Ks3ClientConfig config = new Ks3ClientConfig();
       // 设置域名
       config.setEndpoint(endpoint);
       /**
        * false: (推荐)使用三级域名:{bucketName}.{endpoint}/{objectKey}的形式访问
        * true:  使用二级域名:{endpoint}/{bucketName}/{objectKey}的形式访问
        * 如果domainMode设置为true,则pathStyleAccess可忽略设置
        */
       config.setPathStyleAccess(false);

       // 创建Ks3Client实例
       Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
       // 填写Bucket名称。
       String bucketName = "examplebucket";
       // 填写Object的完整路径。Object完整路径中不能包含Bucket名称。
       String objectName = "exampleobject.txt";
       // 创建getObject请求,指定
       GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
       // 可以重写返回的header
       // ResponseHeaderOverrides overrides = new ResponseHeaderOverrides();
       // overrides.setContentType("text/html");
       // .......
       // request.setOverrides(overrides);
       // 只接受数据的0-10字节。通过控制该项可以实现分块下载
       // request.setRange(0,10);
  
       // 如果文件是用户提供key的方式进行服务端加密的
                   // SecretKey sourceKey= ??//当初加密时用的key
                         // request.setSseCustomerKey(new SSECustomerKey(sourceKey));
       // ks3Object包含文件所在的存储空间名称、文件名称、文件元信息以及一个输入流。
       Ks3Object ks3Object = client.getObject(request).getObject();
       // 读取文件内容。
       System.out.println("Object content:");
       BufferedReader reader = new BufferedReader(new InputStreamReader(ks3Object.getObjectContent()));
       while (true) {
              String line = reader.readLine();
              if (line == null) break;
              System.out.println("\n" + line);
       }
       // 数据读取完成后,获取的流必须关闭,否则会造成连接泄漏,导致请求无连接可用,程序无法正常工作。
       reader.close();
}

删除文件

以下代码用于删除文件。

/**
 * 将<bucket名称>这个存储空间下的<object key>删除
 */

public void deleteObject(){
       // yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
       String endpoint = "yourEndpoint";
       // 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
       String accessKeyId = "yourAccessKeyId";
       String accessKeySecret = "yourAccessKeySecret";
       // 创建Ks3ClientConfig 实例。
       Ks3ClientConfig config = new Ks3ClientConfig();
       // 设置域名
       config.setEndpoint(endpoint);
       // 创建Ks3Client实例
       Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
       // 删除指定桶内的指定文件
       client.deleteObject("<bucket名称>","<object key>");
}

删除存储空间

以下代码用于删除名为test-bucket的存储空间。

public void deleteBucket(){
       // yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
       String endpoint = "yourEndpoint";
       // 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
       String accessKeyId = "yourAccessKeyId";
       String accessKeySecret = "yourAccessKeySecret";
       // 创建Ks3ClientConfig 实例。
       Ks3ClientConfig config = new Ks3ClientConfig();
       // 设置域名
       config.setEndpoint(endpoint);
       // 创建Ks3Client实例
       Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
       // 删除桶名为test-bucket的桶
       client.deleteBucket("test-bucket");
}
文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈