最近更新时间:2024-09-05 11:30:40
Ks3Client是KS3的Java客户端,用于管理存储空间和文件等KS3资源。使用Java SDK发起KS3请求,您需要初始化一个Ks3Client实例,并根据需要修改Ks3ClientConfig的默认配置项。
1. 开通KS3服务,注册账号。
2. 进入控制台,获取AccessKey 、SecretKey。
新建Ks3Client时,需要指定Endpoint。有关Endpoint的更多信息,请参见文档访问域名和数据中心、自定义访问域名。
以下代码用于新建Ks3Client。一个工程中可以有一个或多个Ks3Client,Ks3Client支持并发使用。
// yourEndpoint 填写Bucket所在地域对应的 Endpoint
// 以北京为例,Endpoint 填写为 ks3-cn-beijing.ksyuncs.com
// 如果使用自定义域名,设置Endpoint为自定义域名,同时设置domainMode为true
// Endpoint 与 Region 的对应关系,请参考:https://docs.ksyun.com/documents/6761
// KS3访问域名使用规则,请参考:https://docs.ksyun.com/documents/6762
String endpoint = "yourEndpoint";
// 金山云账号AccessKey拥有所有API的访问权限,风险很高。
// 强烈建议您创建并使用子账号进行API访问或日常运维,
// 请登录https://uc.console.ksyun.com/pro/iam/#/user/list创建子账号。
String accessKeyId = "yourAccessKey";
String accessKeySecret = "yourSecretKey";
// 创建Ks3ClientConfig 实例。
Ks3ClientConfig config = new Ks3ClientConfig();
// 设置域名。
config.setEndpoint(endpoint);
/**
* 设置domainMode。
* true:表示以自定义域名访问。
* false:表示以KS3的外网域名或内网域名访问,默认为false。
*/
config.setDomainMode(false);
// 设置通信协议,可选项Ks3ClientConfig.PROTOCOL.http、Ks3ClientConfig.PROTOCOL.https。
config.setProtocol(Ks3ClientConfig.PROTOCOL.http);
/**
* false: (推荐)使用三级域名:{bucketName}.{endpoint}/{objectKey}的形式访问。
* true: 使用二级域名:{endpoint}/{bucketName}/{objectKey}的形式访问。
* 如果domainMode设置为true,则pathStyleAccess可忽略设置。
*/
config.setPathStyleAccess(false);
// 设置httpclient。
HttpClientConfig hconfig = new HttpClientConfig();
// 在HttpClientConfig中可以设置httpclient的相关属性,比如代理、超时、重试等。
config.setHttpClientConfig(hconfig);
// 创建Ks3Client实例。
Ks3 client = new Ks3Client(accessKeyId,accessKeySecret,config);
1. 如您的Bucket创建时间在2022年5月30日前,既可以使用二级域名访问也可以使用三级域名访问,如您的Bucket创建时间在2022年5月30日后,只能使用三级域名访问。
2. 使用V 4.5.7,V 4.5.8,V 4.5.9版本的HTTP Client有可能发生预期外的403错误,请使用V 4.5.10及以上版本的HTTP Client。
SDK使用commons-logging
使用log4j示例
1. 引用log4j相关jar包。
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
2. 新建log4j.properties(如下为示例配置)。
log4j.logger.com.ksyun.ks3=DEBUG,stdout
log4j.logger.org.apache.http=DEBUG,stdout
log4j.logger.org.apache.http.wire=ERROR,stdout
log4j.addivity.org.apache=true
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss SSS} %-5p [%t]%C{1}.%M(%L) - %m%n
使用logback示例
引用SDK的时候排除commons-logging,引用logback相关包(包括但不止jcl-over-slf4j)。
<dependency>
<groupId>com.ksyun</groupId>
<artifactId>ks3-kss-java-sdk</artifactId>
<version>0.6.0</version>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
</dependency>
在KS3中,用户操作的基本数据单元是Object。单个Object允许存储0~48.8TB的数据。 Object包含Key和Data。其中,Key是Object的名字;Data是Object的数据。
即Object的名字,Key为UTF-8编码,且编码后的长度不得超过1024个字符。Key中可以带有斜杠,当Key中带有斜杠的时候,将会自动在控制台里组织成目录结构。
其他术语请参考概念与术语。
纯净模式