All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ksyun.ks3.service.Ks3 Maven / Gradle / Ivy

package com.ksyun.ks3.service;

import com.ksyun.ks3.dto.*;
import com.ksyun.ks3.dto.CreateBucketConfiguration.REGION;
import com.ksyun.ks3.exception.Ks3ClientException;
import com.ksyun.ks3.exception.Ks3ServiceException;
import com.ksyun.ks3.service.request.*;
import com.ksyun.ks3.service.response.Ks3WebServiceResponse;

import java.io.File;
import java.io.InputStream;
import java.util.List;
import java.util.Map;

/**
 * @author lijunwei[[email protected]]  
 * @date 2014年10月14日 下午5:30:30
 * @description ks3客户端,用户使用时需要先配置ClientConfig{@link Ks3ClientConfig}
 * ,然后初始化一个Ks3Client进行操作
 **/
public interface Ks3 {
    /**
     * 设置accesskeyid accesskeysecret
     *
     * @param auth
     */
    public void setAuth(Authorization auth);

    /**
     * 设置accesskeyid accesskeysecret
     *
     * @param auth
     */
    public Ks3 withAuth(Authorization auth);

    /**
     * 设置服务地址
* 中国标准:kss.ksyun.com
* 中国cdn:kssws.ks-cdn.com
* 美国(圣克拉拉):ks3-us-west-1.ksyun.com
* * @param endpoint */ public void setEndpoint(String endpoint); /** * 设置服务地址 * 中国标准:kss.ksyun.com
* 中国cdn:kssws.ks-cdn.com
* 美国(圣克拉拉):ks3-us-west-1.ksyun.com
* * @param endpoint */ public Ks3 withEndpoint(String endpoint); /** * 设置是否使用pathStyle * * @param pathStyle */ public void setPathAccessStyle(boolean pathStyle); /** * 设置是否使用pathStyle * * @param pathStyle */ public Ks3 withPathStyleAccess(boolean pathStyle); /** * 获取配置信息 * * @return {@link Ks3ClientConfig} */ public Ks3ClientConfig getKs3config(); /** * 设置配置信息 * * @param ks3config */ public void setKs3config(Ks3ClientConfig ks3config); /** * 设置配置信息 * * @param ks3config */ public Ks3 withKs3config(Ks3ClientConfig ks3config); /** * GET SERVICE * * @return {@link Bucket} * @throws Ks3ClientException * @throws Ks3ServiceException

* 列出当前用户下的所有bucket *

*/ public List listBuckets() throws Ks3ClientException, Ks3ServiceException; /** * GET SERVICE * * @param request {@link ListBucketsRequest} * @return {@link Bucket} * @throws Ks3ClientException * @throws Ks3ServiceException

* 列出当前用户下的所有bucket *

*/ public List listBuckets(ListBucketsRequest request) throws Ks3ClientException, Ks3ServiceException; /** * PUT Bucket crr * * @param bucketName * @param rule * @return * @throws Ks3ClientException * @throws Ks3ServiceException

* 设置bucket的跨区域复制 *

*/ public void putBucketReplicationConfiguration(String bucketName, ReplicationRule rule) throws Ks3ClientException, Ks3ServiceException; /** * PUT Bucket crr * * @param request {@link PutBucketReplicationConfigurationRequest} * @return * @throws Ks3ClientException * @throws Ks3ServiceException

* 设置bucket的跨区域复制 *

*/ public void putBucketReplicationConfiguration(PutBucketReplicationConfigurationRequest request) throws Ks3ClientException, Ks3ServiceException; /** * GET Bucket crr * * @param bucketName * @return * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取bucket的跨区域复制 *

*/ public ReplicationRule getBucketReplicationConfiguration(String bucketName) throws Ks3ClientException, Ks3ServiceException; /** * DEL Bucket crr * * @param bucketName * @return * @throws Ks3ClientException * @throws Ks3ServiceException

* 删除bucket的跨区域复制 *

*/ public void deleteBucketReplicationConfiguration(String bucketName) throws Ks3ClientException, Ks3ServiceException; /** * GET Bucket Location * * @param bucketName * @return * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取bucket的存储地点 *

*/ public REGION getBucketLoaction(String bucketName) throws Ks3ClientException, Ks3ServiceException; /** * GET Bucket Location * * @param request {@link GetBucketLocationRequest} * @return * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取bucket的存储地点 *

*/ public REGION getBucketLoaction(GetBucketLocationRequest request) throws Ks3ClientException, Ks3ServiceException; /** * GET Bucket Logging * * @param bucketName * @return {@link BucketLoggingStatus} * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取bucket的日志配置 *

*/ public BucketLoggingStatus getBucketLogging(String bucketName) throws Ks3ClientException, Ks3ServiceException; /** * GET Bucket Logging * * @param request {@link GetBucketLoggingRequest} * @return {@link BucketLoggingStatus} * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取bucket的日志配置 *

*/ public BucketLoggingStatus getBucketLogging(GetBucketLoggingRequest request) throws Ks3ClientException, Ks3ServiceException; /** * PUT Bucket Logging * * @param bucketName * @param enable 是否开启 * @param targetBucket 存储日志的bucket * @throws Ks3ClientException * @throws Ks3ServiceException

* 配置bucket的日志 *

*/ public void putBucketLogging(String bucketName, boolean enable, String targetBucket) throws Ks3ClientException, Ks3ServiceException; /** * PUT Bucket Logging * * @param bucketName * @param enable 是否开启 * @param targetBucket 存储日志的bucket * @param targetPrefix 日志文件前缀 * @throws Ks3ClientException * @throws Ks3ServiceException

* 配置 bucket的日志 *

*/ public void putBucketLogging(String bucketName, boolean enable, String targetBucket, String targetPrefix) throws Ks3ClientException, Ks3ServiceException; /** * PUT Bucket Logging * * @param request {@link PutBucketLoggingRequest} * @throws Ks3ClientException * @throws Ks3ServiceException

* 配置bucket的日志 *

*/ public void putBucketLogging(PutBucketLoggingRequest request) throws Ks3ClientException, Ks3ServiceException; /** * GET BUCKET acl * * @param bucketName bucket名称 * @return {@link AccessControlPolicy} * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取bucket的acl *

*/ public AccessControlPolicy getBucketACL(String bucketName) throws Ks3ClientException, Ks3ServiceException; /** * GET Bucket acl * * @param request {@link GetBucketACLRequest} * @return {@link AccessControlPolicy} * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取bucket的acl *

*/ public AccessControlPolicy getBucketACL(GetBucketACLRequest request) throws Ks3ClientException, Ks3ServiceException; /** * GET BUCKET acl * * @param bucketName bucket名称 * @return {@link CannedAccessControlList} * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取bucket的acl *

*/ public CannedAccessControlList getBucketCannedACL(String bucketName) throws Ks3ClientException, Ks3ServiceException; /** * GET Bucket acl * * @param request {@link GetBucketACLRequest} * @return {@link CannedAccessControlList} * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取bucket的acl *

*/ public CannedAccessControlList getBucketCannedACL(GetBucketACLRequest request) throws Ks3ClientException, Ks3ServiceException; /** * PUT Bucket acl * * @param bucketName bucket名称 * @param accessControlList {@link AccessControlList} * @throws Ks3ClientException * @throws Ks3ServiceException

* 编辑bucket的acl *

*/ public void putBucketACL(String bucketName, AccessControlList accessControlList) throws Ks3ClientException, Ks3ServiceException; /** * PUT Bucket acl * * @param bucketName bucket名称 * @param CannedAcl {@link CannedAccessControlList} * @throws Ks3ClientException * @throws Ks3ServiceException

* 编辑bucket的acl *

*/ public void putBucketACL(String bucketName, CannedAccessControlList CannedAcl) throws Ks3ClientException, Ks3ServiceException; /** * PUT Bucket acl * * @param request {@link PutBucketACLRequest} * @return * @throws Ks3ClientException * @throws Ks3ServiceException

* 编辑bucket的acl *

*/ public void putBucketACL(PutBucketACLRequest request) throws Ks3ClientException, Ks3ServiceException; /** * PUT OBJECT ACL * * @param bucketName bucket名称 * @param objectName object名称 * @param accessControlList {@link CannedAccessControlList} * @throws Ks3ClientException * @throws Ks3ServiceException

* 编辑object的acl *

*/ public void putObjectACL(String bucketName, String objectName, CannedAccessControlList accessControlList) throws Ks3ClientException, Ks3ServiceException; /** * PUT OBJECT ACL * * @param bucketName bucket名称 * @param objectName object名称 * @param accessControlList {@link AccessControlList} * @throws Ks3ClientException * @throws Ks3ServiceException

* 编辑object的acl *

*/ public void putObjectACL(String bucketName, String objectName, AccessControlList accessControlList) throws Ks3ClientException, Ks3ServiceException; /** * PUT Object acl * * @param request {@link PutObjectACLRequest} * @return * @throws Ks3ClientException * @throws Ks3ServiceException

* 编辑object的acl *

*/ public void putObjectACL(PutObjectACLRequest request) throws Ks3ClientException, Ks3ServiceException; /** * Get Object acl * * @param bucketName bucket名称 * @param ObjectName object名称 * @return {@link AccessControlPolicy} * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取object的acl *

*/ public AccessControlPolicy getObjectACL(String bucketName, String ObjectName) throws Ks3ClientException, Ks3ServiceException; public AccessControlPolicy getObjectACL(String bucketName, String ObjectName, String versionId) throws Ks3ClientException, Ks3ServiceException; /** * Get Object acl * * @param request {@link GetObjectACLRequest} * @return {@link AccessControlPolicy} * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取object的acl *

*/ public AccessControlPolicy getObjectACL(GetObjectACLRequest request) throws Ks3ClientException, Ks3ServiceException; /** * Get Object acl * * @param bucketName bucket名称 * @param ObjectName object名称 * @return {@link CannedAccessControlList} * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取object的acl *

*/ public CannedAccessControlList getObjectCannedACL(String bucketName, String ObjectName) throws Ks3ClientException, Ks3ServiceException; /** * Get Object acl * * @param request {@link GetObjectACLRequest} * @return {@link CannedAccessControlList} * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取object的acl *

*/ public CannedAccessControlList getObjectCannedACL(GetObjectACLRequest request) throws Ks3ClientException, Ks3ServiceException; /** * HEAD BUECKET * * @param bucketname bucket名称 * @return statue code and headers{@link HeadBucketResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 返回headers *

*/ public HeadBucketResult headBucket(String bucketname) throws Ks3ClientException, Ks3ServiceException; /** * HEAD BUCKET * * @param request {@link HeadBucketRequest} * @return statue code and headers{@link HeadBucketResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 返回headers *

*/ public HeadBucketResult headBucket(HeadBucketRequest request) throws Ks3ClientException, Ks3ServiceException; /** * @param bucketname bucket名称 * @return 如果bucket存在则为true * @throws Ks3ClientException

* 判断bucket是否存在,bucket存在但不属于当前用户也会返回true *

*/ public boolean bucketExists(String bucketname) throws Ks3ClientException, Ks3ServiceException; /** * PUT BUCKET * * @param bucketname bucket名称 *

* Bucket是存放Object的容器,所有的Object都必须存放在特定的Bucket中。 * ,每个Bucket中可以存放无限多个Object。Bucket不能嵌套,每个Bucket中只能存放Object, * 不能再存放Bucket ,Bucket下的Object是一个平级的结构。 *

*

* 唯一且命名规则与DNS命名规则相同: *

*

    *
  • 长度3-63,
  • *
  • 不包含大写字母,不包含[‘ ’,\t,\r,\n],不包含连续的’.’
  • *
  • ,’.’和’-’在bucket名称中不能相连,
  • *
  • 仅可包含. - 数字 小写字母,
  • *
  • 不以’.’或’-’结尾
  • *
* @return {@link Bucket} * @throws Ks3ClientException * @throws Ks3ServiceException

* 创建bucket,权限默认是私有的,存储地点为杭州 *

*/ public Bucket createBucket(String bucketname) throws Ks3ClientException, Ks3ServiceException; /** * PUT BUCKET * * @param request {@link CreateBucketRequest} * @return {@link Bucket} * @throws Ks3ClientException * @throws Ks3ServiceException

* 创建bucket,权限默认是私有的,存储地点为杭州 *

*/ public Bucket createBucket(CreateBucketRequest request) throws Ks3ClientException, Ks3ServiceException; /** * 新建文件夹 * * @param bucketName * @param dir * @throws Ks3ClientException * @throws Ks3ServiceException */ public void makeDir(String bucketName, String dir) throws Ks3ClientException, Ks3ServiceException; /** * DELETE BUCKET * * @param bucketname bucket名称 * @throws Ks3ClientException * @throws Ks3ServiceException

* 删除bucket,bucket中内容为空时可以删除成功 *

*

注意这个操作是不能回退的

*/ public void deleteBucket(String bucketname) throws Ks3ClientException, Ks3ServiceException; /** * DELETE BUCKET * * @param request {@link DeleteBucketRequest} * @throws Ks3ClientException * @throws Ks3ServiceException

* 删除bucket,bucket中内容为空时可以删除成功 *

*

注意这个操作是不能回退的

*/ public void deleteBucket(DeleteBucketRequest request) throws Ks3ClientException, Ks3ServiceException; /** * GET BUCKET(LIST OBJECTS) * * @param bucketname bucket名称 * @return {@link ObjectListing} * @throws Ks3ClientException * @throws Ks3ServiceException

* 列出bucket下满足条件的object *

*

delimiter使用默认的/

*

返回的最大数(max-keys)使用默认的1000

*/ public ObjectListing listObjects(String bucketname) throws Ks3ClientException, Ks3ServiceException; public ObjectVersionsListing listObjectVersions(String bucketname) throws Ks3ClientException, Ks3ServiceException; /** * GET BUCKET(LIST OBJECTS) * * @param bucketname bucket名称 * @param prefix 前缀 * @return {@link ObjectListing} * @throws Ks3ClientException * @throws Ks3ServiceException

* 列出bucket下满足条件的object *

*

delimiter使用默认的/

*

返回的最大数(max-keys)使用默认的1000

*/ public ObjectListing listObjects(String bucketname, String prefix) throws Ks3ClientException, Ks3ServiceException; public ObjectVersionsListing listObjectVersions(String bucketname, String prefix) throws Ks3ClientException, Ks3ServiceException; /** * GET BUCKET(LIST OBJECTS) * * @param request {@link ListObjectsRequest} * @return {@link ObjectListing} * @throws Ks3ClientException * @throws Ks3ServiceException

* 列出bucket下满足条件的object *

*/ public ObjectListing listObjects(ListObjectsRequest request) throws Ks3ClientException, Ks3ServiceException; /** * GET BUCKET(LIST OBJECTS V2) * @param bucketName bucket名称 * @return {@link ObjectListingV2} * @throws Ks3ClientException * @throws Ks3ServiceException */ public ObjectListingV2 listObjectsV2(String bucketName) throws Ks3ClientException, Ks3ServiceException; /** * GET BUCKET(LIST OBJECTS V2) * @param bucketName bucket名称 * @param prefix 前缀 * @return {@link ObjectListingV2} * @throws Ks3ClientException * @throws Ks3ServiceException */ public ObjectListingV2 listObjectsV2(String bucketName, String prefix) throws Ks3ClientException, Ks3ServiceException; /** * GET BUCKET(LIST OBJECTS V2) * @param request * @return {@link ObjectListingV2} * @throws Ks3ClientException * @throws Ks3ServiceException */ public ObjectListingV2 listObjectsV2(ListObjectsV2Request request) throws Ks3ClientException, Ks3ServiceException; public ObjectVersionsListing listObjectVersions(ListObjectVersionsRequest request) throws Ks3ClientException, Ks3ServiceException; /** * DELETE OBJECT * * @param bucketname bucket名称 * @param key object的key(即名称) * @throws Ks3ClientException * @throws Ks3ServiceException

* 删除指定的object *

*/ public void deleteObject(String bucketname, String key) throws Ks3ClientException, Ks3ServiceException; /** * DELETE OBJECT * * @param request {@link DeleteObjectRequest} * @throws Ks3ClientException * @throws Ks3ServiceException

* 删除指定的object *

*/ public void deleteObject(DeleteObjectRequest request) throws Ks3ClientException, Ks3ServiceException; /** * GET OBJECT * * @param bucketname bucket名称 * @param key object的key(即名称) * @return {@link GetObjectResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取指定的object *

*/ public GetObjectResult getObject(String bucketname, String key) throws Ks3ClientException, Ks3ServiceException; /** * GET OBJECT * * @param request {@link GetObjectRequest} * @return {@link GetObjectResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取指定的object *

*/ public GetObjectResult getObject(GetObjectRequest request) throws Ks3ClientException, Ks3ServiceException; /** * 生成object的外链地址 * * @param bucket * @param key * @param expiration 外链地址过期时间,单位秒 * @return * @throws Ks3ClientException */ public String generatePresignedUrl(String bucket, String key, int expiration) throws Ks3ClientException; /** * 生成object的外链地址 * * @param bucket * @param key * @param expiration 外链地址过期时间,单位秒 * @param overrides 修改返回的headers * @return * @throws Ks3ClientException */ public String generatePresignedUrl(String bucket, String key, int expiration, ResponseHeaderOverrides overrides) throws Ks3ClientException; /** * 生成外链 * * @param request {@link GeneratePresignedUrlRequest} * @return * @throws Ks3ClientException */ public String generatePresignedUrl(GeneratePresignedUrlRequest request) throws Ks3ClientException; /** * PUT OBJECT * * @param bucketname bucket名称 * @param objectkey object的key(即名称,编码后的长度不得超过1024个字节。) * @param file 要上传的文件 * @return {@link PutObjectResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 上传object *

*/ public PutObjectResult putObject(String bucketname, String objectkey, File file) throws Ks3ClientException, Ks3ServiceException; /** * PUT OBJECT * * @param bucketname bucket名称 * @param objectkey object的key(即名称,编码后的长度不得超过1024个字节。) * @param inputstream 数据流 * @param objectmeta object元数据{@link ObjectMetadata} * @return {@link PutObjectResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 使用时请尽量在metadata中提供content * -length,否则有可能导致jvm内存溢出。可以在metadata中指定contentMD5 *

*

* 上传object *

*/ public PutObjectResult putObject(String bucketname, String objectkey, InputStream inputstream, ObjectMetadata objectmeta) throws Ks3ClientException, Ks3ServiceException; /** * PUT Object * * @param bucketname bucket名称 * @param objectkey * @param content 要上传的内容 * @return * @throws Ks3ClientException * @throws Ks3ServiceException

* 将一个字符串作为内容上传 *

*/ public PutObjectResult putObject(String bucketname, String objectkey, String content) throws Ks3ClientException, Ks3ServiceException; /** * PUT OBJECT * * @param request {@link PutObjectRequest} * @return {@link PutObjectResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 上传object *

*/ public PutObjectResult putObject(PutObjectRequest request) throws Ks3ClientException, Ks3ServiceException; /** * APPEND OBJECT * * @param request {@link PutObjectRequest} * @return {@link PutObjectResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 上传object *

*/ public AppendObjectResult appendObject(AppendObjectRequest request) throws Ks3ClientException, Ks3ServiceException; /** * Copy Object * * @param destinationBucket 目标bucket * @param destinationObject 目标object key * @param sourceBucket 数据源bucket * @param sourceKey 数据源object key * @return {@link CopyResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 将指定的object复制到目标地点 *

*/ public CopyResult copyObject(String destinationBucket, String destinationObject, String sourceBucket, String sourceKey) throws Ks3ClientException, Ks3ServiceException; /** * Copy Object * * @param destinationBucket 目标bucket * @param destinationObject 目标object key * @param sourceBucket 数据源bucket * @param sourceKey 数据源object key * @param cannedAcl {@link CannedAccessControlList} * @return {@link CopyResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 将指定的object复制到目标地点 *

*/ public CopyResult copyObject(String destinationBucket, String destinationObject, String sourceBucket, String sourceKey, CannedAccessControlList cannedAcl) throws Ks3ClientException, Ks3ServiceException; /** * Copy Object * * @param destinationBucket 目标bucket * @param destinationObject 目标object key * @param sourceBucket 数据源bucket * @param sourceKey 数据源object key * @param accessControlList {@link AccessControlList} * @return {@link CopyResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 将指定的object复制到目标地点 *

*/ public CopyResult copyObject(String destinationBucket, String destinationObject, String sourceBucket, String sourceKey, AccessControlList accessControlList) throws Ks3ClientException, Ks3ServiceException; /** * Copy Object * * @param request {@link CopyObjectRequest} * @return {@link CopyResult} * @throws Ks3ClientException * @throws Ks3ServiceException

将指定的object复制到目标地点,将复制源object的元数据、acl等信息

*/ public CopyResult copyObject(CopyObjectRequest request) throws Ks3ClientException, Ks3ServiceException; /** * HEAD OBJECT * * @param bucketname bucket名称 * @param objectkey object的key(即object名称) * @return {@link HeadObjectResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取object的元数据、etag、上次修改时间 *

*/ public HeadObjectResult headObject(String bucketname, String objectkey) throws Ks3ClientException, Ks3ServiceException; /** * HEAD OBJECT * * @param request {@link HeadObjectRequest} * @return {@link HeadObjectResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 获取object的元数据、etag、上次修改时间 *

*/ public HeadObjectResult headObject(HeadObjectRequest request) throws Ks3ClientException, Ks3ServiceException; /** * 判断object是否存在 * * @param bucket * @param key * @return boolean */ public boolean objectExists(String bucket, String key); /** * Initiate Multipart Upload * * @param bucketname bucket名称 * @param objectkey object的key(即object名称) * @return {@link InitiateMultipartUploadResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 初始化分块上传 *

*/ public InitiateMultipartUploadResult initiateMultipartUpload(String bucketname, String objectkey) throws Ks3ClientException, Ks3ServiceException; /** * Initiate Multipart Upload * * @param request {@link InitiateMultipartUploadRequest} * @return {@link InitiateMultipartUploadResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 初始化分块上传 *

*/ public InitiateMultipartUploadResult initiateMultipartUpload(InitiateMultipartUploadRequest request) throws Ks3ClientException, Ks3ServiceException; /** * Upload Part * * @param request {@link UploadPartRequest} * @return {@link PartETag} * @throws Ks3ClientException * @throws Ks3ServiceException

* 分块上传文件 *

*/ public PartETag uploadPart(UploadPartRequest request) throws Ks3ClientException, Ks3ServiceException; /** * Upload Part Copy * * @param request {@link CopyPartRequest} * @return {@link CopyResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 分块上传时使用copy *

*/ public CopyResult copyPart(CopyPartRequest request) throws Ks3ClientException, Ks3ServiceException; /** * Complete Multipart Upload * * @param bucketname bucket名称 * @param objectkey object的key(即名称) * @param uploadId 通过初始化分块上传获取到的uploadId * @param partETags

* public PartETag uploadPart(UploadPartRequest request)throws * Ks3ClientException, Ks3ServiceException; *

* 获取到的结果{@link PartETag} * @return {@link CompleteMultipartUploadResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 完成分块上传,使ks3服务器将之前上传的小块合并成一个object *

*/ public CompleteMultipartUploadResult completeMultipartUpload( String bucketname, String objectkey, String uploadId, List partETags) throws Ks3ClientException, Ks3ServiceException; /** * Complete Multipart Upload * * @param result {@link ListPartsResult}ListParts操作的返回值 * @throws Ks3ClientException * @throws Ks3ServiceException

* 完成分块上传,使ks3服务器将之前上传的小块合并成一个object *

* @return{@link CompleteMultipartUploadResult} */ public CompleteMultipartUploadResult completeMultipartUpload( ListPartsResult result) throws Ks3ClientException, Ks3ServiceException; /** * Complete Multipart Upload * * @param request {@link CompleteMultipartUploadRequest} * @return {@link CompleteMultipartUploadResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 完成分块上传,使ks3服务器将之前上传的小块合并成一个object *

*/ public CompleteMultipartUploadResult completeMultipartUpload( CompleteMultipartUploadRequest request) throws Ks3ClientException, Ks3ServiceException; /** * Abort Multipart Upload * * @param bucketname bucket名称 * @param objectkey object的key(即object的名称) * @param uploadId 通过初始化分块上传获取到的uploadId * @throws Ks3ClientException * @throws Ks3ServiceException

* 中止分块上传 *

*/ public void abortMultipartUpload(String bucketname, String objectkey, String uploadId) throws Ks3ClientException, Ks3ServiceException; /** * Abort Multipart Upload * * @param request {@link AbortMultipartUploadRequest} * @throws Ks3ClientException * @throws Ks3ServiceException

* 中止分块上传 *

*/ public void abortMultipartUpload(AbortMultipartUploadRequest request) throws Ks3ClientException, Ks3ServiceException; /** * List Parts * * @param bucketname bucket名称 * @param objectkey object的key(即object的名称) * @param uploadId 通过初始化分块上传获取到的uploadId * @return {@link ListPartsResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 列出该uploadid下已经上传成功的块 *

*/ public ListPartsResult listParts(String bucketname, String objectkey, String uploadId) throws Ks3ClientException, Ks3ServiceException; /** * List Parts * * @param bucketname bucket名称 * @param objectkey object的key(即object的名称) * @param uploadId 通过初始化分块上传获取到的uploadId * @param maxParts 列出的最大结果数 * @return {@link ListPartsResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 列出该uploadid下已经上传成功的块 *

*/ public ListPartsResult listParts(String bucketname, String objectkey, String uploadId, int maxParts) throws Ks3ClientException, Ks3ServiceException; /** * List Parts * * @param bucketname bucket名称 * @param objectkey object的key(即object的名称) * @param uploadId 通过初始化分块上传获取到的uploadId * @param maxParts 列出的最大结果数 * @param partNumberMarker partnumber游标,即从第partNumberMarker开始罗列 * @return {@link ListPartsResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 列出该uploadid下已经上传成功的块 *

*/ public ListPartsResult listParts(String bucketname, String objectkey, String uploadId, int maxParts, int partNumberMarker) throws Ks3ClientException, Ks3ServiceException; /** * List Parts * * @param request {@link ListPartsRequest} * @return {@link ListPartsResult} * @throws Ks3ClientException * @throws Ks3ServiceException

* 列出该uploadid下已经上传成功的块 *

*/ public ListPartsResult listParts(ListPartsRequest request) throws Ks3ClientException, Ks3ServiceException; /** * List Multipart Uploads * * @param bucketName * @return {@link ListMultipartUploadsResult} * @throws Ks3ClientException * @throws Ks3ClientException

* 列出bucket下分块上传未abort或complete的块 *

*/ public ListMultipartUploadsResult listMultipartUploads(String bucketName) throws Ks3ClientException, Ks3ServiceException; /** * List Multipart Uploads * * @param bucketName * @param prefix object key前缀 * @return {@link ListMultipartUploadsResult} * @throws Ks3ClientException * @throws Ks3ClientException

* 列出bucket下分块上传未abort或complete的块 *

*/ public ListMultipartUploadsResult listMultipartUploads(String bucketName, String prefix) throws Ks3ClientException, Ks3ServiceException; /** * List Multipart Uploads * * @param bucketName * @param prefix object key前缀 * @param keyMarker * @param uploadIdMarker

* keyMarker为空,uploadIdMarker不为空 *

*

* 无意义 *

*

* keyMarker不为空,uploadIdMarker不为空 *

*

* 列出分块上传object key为keyMarker,且upload id 大于uploadIdMarker的块 *

*

* keyMarker不为空,uploadIdMarker为空 *

*

* 列出分块上传object key大于keyMarker的块 *

* @return {@link ListMultipartUploadsResult} * @throws Ks3ClientException * @throws Ks3ClientException

* 列出bucket下分块上传未abort或complete的块 *

*/ public ListMultipartUploadsResult listMultipartUploads(String bucketName, String prefix, String keyMarker, String uploadIdMarker) throws Ks3ClientException, Ks3ServiceException; /** * List Multipart Uploads * * @param request {@link ListMultipartUploadsRequest} * @return {@link ListMultipartUploadsResult} * @throws Ks3ClientException * @throws Ks3ClientException

* 列出bucket下分块上传未abort或complete的块 *

*/ public ListMultipartUploadsResult listMultipartUploads( ListMultipartUploadsRequest request) throws Ks3ClientException, Ks3ServiceException; /** * PUT Bucket cors * * @param request {@link PutBucketCorsRequest} * @throws Ks3ClientException * @throws Ks3ClientException

配置bucket的跨域资源共享

*/ public void putBucketCors(PutBucketCorsRequest request) throws Ks3ClientException, Ks3ServiceException; /** * GET Bucket cors * * @param bucketname * @return * @throws Ks3ClientException * @throws Ks3ServiceException

获取bucket的跨域资源共享配置

*/ public BucketCorsConfiguration getBucketCors(String bucketname) throws Ks3ClientException, Ks3ServiceException; /** * GET Bucket cors * * @param request {@link GetBucketCorsRequest} * @return * @throws Ks3ClientException * @throws Ks3ServiceException

获取bucket的跨域资源共享配置

*/ public BucketCorsConfiguration getBucketCors(GetBucketCorsRequest request) throws Ks3ClientException, Ks3ServiceException; /** * DELETE Bucket cors * * @param bucketname * @throws Ks3ClientException * @throws Ks3ServiceException

删除bucket的跨域资源共享配置

*/ public void deleteBucketCors(String bucketname) throws Ks3ClientException, Ks3ServiceException; /** * DELETE Bucket cors * * @param request {@link DeleteBucketCorsRequest} * @throws Ks3ClientException * @throws Ks3ServiceException

删除bucket的跨域资源共享配置

*/ public void deleteBucketCors(DeleteBucketCorsRequest request) throws Ks3ClientException, Ks3ServiceException; /** * @param request {@code Class } * @param clazz {@code Class } * @return * @throws Ks3ClientException * @throws Ks3ClientException

对于自定义的request和response可以通过这个方法执行

*/ public , Y> Y execute( Ks3WebServiceRequest request, Class clazz) throws Ks3ClientException, Ks3ServiceException; /** * @param policy * @return {@link PostObjectFormFields} * @throws Ks3ClientException

通过自定义policy规则获取post object时表单中的Signature、KSSAccessKeyId、policy三项的值

*/ public PostObjectFormFields postObject(PostPolicy policy) throws Ks3ClientException; /** * @param bucket 目标bucket * @param filename 要上传的文件名称,当postFormData中没有使用${filename}时可以不提供 * @param postFormData 可以确定值得表单项 * @param unknowValueFormFiled 无法确定值得表单项 * @return {@link PostObjectFormFields} * @throws Ks3ClientException

通过bucket和表单中的除 Signature、KSSAccessKeyId、policy外的所有表单项 获取post object时表单中的Signature、KSSAccessKeyId、policy三项的值

*

由此方法生成的签名只能适用于本次请求,matchingType全部使用eq或通配

*/ public PostObjectFormFields postObject(String bucket, String filename, Map postFormData, List unknowValueFormFiled) throws Ks3ClientException; /** * @param bucketName 要处理的数据所在的bucket * @param objectKey 要处理的数据的key * @param adps 一系列的操作指令{@link Adp} * @return PutAdpResult {@link PutAdpResult} * @throws Ks3ClientException * @throws Ks3ServiceException

添加数据处理任务

*/ public PutAdpResult putAdpTask(String bucketName, String objectKey, List adps) throws Ks3ClientException, Ks3ServiceException; ; /** * @param bucketName 要处理的数据所在的bucket * @param objectKey 要处理的数据的key * @param adps 一系列的操作指令{@link Adp} * @param notifyURL 处理完成后KS3将调用该url,以通知用户 * @return PutAdpResult {@link PutAdpResult} * @throws Ks3ClientException * @throws Ks3ServiceException

添加数据处理任务

*/ public PutAdpResult putAdpTask(String bucketName, String objectKey, List adps, String notifyURL) throws Ks3ClientException, Ks3ServiceException; /** * @param request {@link PutAdpRequest} * @return PutAdpResult {@link PutAdpResult} * @throws Ks3ClientException * @throws Ks3ServiceException

添加数据处理任务

*/ public PutAdpResult putAdpTask(PutAdpRequest request) throws Ks3ClientException, Ks3ServiceException; /** * @param taskid 由putpfop,postobject,putobject,complete_mutipart_upload返回的taskid * @return {@link AdpTask} * @throws Ks3ClientException * @throws Ks3ServiceException

查询数据处理任务的状态

*/ public AdpTask getAdpTask(String taskid) throws Ks3ClientException, Ks3ServiceException; /** * @param request {@link GetAdpRequest} * @return {@link AdpTask} * @throws Ks3ClientException * @throws Ks3ServiceException

查询数据处理任务的状态

*/ public AdpTask getAdpTask(GetAdpRequest request) throws Ks3ClientException, Ks3ServiceException; /** * @param request {@link PutBucketLifecycleRequest} * @throws Ks3ClientException * @throws Ks3ServiceException

增加生命周期配置

*/ public void putBucketLifecycle(PutBucketLifecycleRequest request); /** * @param bucket * @param bucketLifecycleConfiguration {@link BucketLifecycleConfiguration} * @throws Ks3ClientException * @throws Ks3ServiceException

增加生命周期配置

*/ public void putBucketLifecycle(String bucket, BucketLifecycleConfiguration bucketLifecycleConfiguration); /** * @param bucket * @return {@link BucketLifecycleConfiguration} * @throws Ks3ClientException * @throws Ks3ServiceException

查询生命周期配置

*/ public BucketLifecycleConfiguration getBucketLifecycle(String bucket); /** * @param request * @param {@link GetBucketLifecycleRequest} * @return {@link BucketLifecycleConfiguration} * @throws Ks3ClientException * @throws Ks3ServiceException

查询生命周期配置

*/ public BucketLifecycleConfiguration getBucketLifecycle(GetBucketLifecycleRequest request); /** * @param bucket * @throws Ks3ClientException * @throws Ks3ServiceException

删除生命周期配置

*/ public void deleteBucketLifecycle(String bucket); /** * @param request {@link DeleteBucketLifecycleRequest} * @throws Ks3ClientException * @throws Ks3ServiceException

删除生命周期配置

*/ public void deleteBucketLifecycle(DeleteBucketLifecycleRequest request); /** * @param bucketName * @param objectKey * @param sourceUrl * @throws Ks3ClientException * @throws Ks3ServiceException

fetch 文件接口

*/ public Ks3Result putObjectFetch(String bucketName, String objectKey, String sourceUrl); /** * @param request {@link PutObjectFetchRequest} * @throws Ks3ClientException * @throws Ks3ServiceException

fetch 文件接口

*/ public Ks3Result putObjectFetch(PutObjectFetchRequest request); public RestoreObjectResult restoreObject(String bucketName, String objectKey); public RestoreObjectResult restoreObject(RestoreObjectRequest request); /** *

* Sets the policy associated with the specified bucket. Only the owner of * the bucket can set a bucket policy. If a policy already exists for the * specified bucket, the new policy replaces the existing policy. *

*

* Bucket policies provide access control management at the bucket level for * both the bucket resource and contained object resources. Only one policy * can be specified per-bucket. *

* * @param bucketName The name of the Amazon S3 bucket whose policy is being set. * @param policyText The policy to apply to the specified bucket. */ public void putBucketPolicy(String bucketName, String policyText) throws Ks3ClientException, Ks3ServiceException; public void putBucketPolicy(PutBucketPolicyRequest request) throws Ks3ClientException, Ks3ServiceException; /** *

* Gets the policy for the specified bucket. Only the owner of the bucket * can retrieve the policy. If no policy has been set for the bucket, then * an empty result object with a null policy text field will be * returned. *

*

* Bucket policies provide access control management at the bucket level for * both the bucket resource and contained object resources. Only one policy * can be specified per-bucket. *

*/ public BucketPolicy getBucketPolicy(GetBucketPolicyRequest getBucketPolicyRequest) throws Ks3ClientException, Ks3ServiceException; public BucketPolicy getBucketPolicy(String bucketName) throws Ks3ClientException, Ks3ServiceException; /** *

* Deletes the policy associated with the specified bucket. Only the owner * of the bucket can delete the bucket policy. *

*

* Bucket policies provide access control management at the bucket level for * both the bucket resource and contained object resources. Only one policy * can be specified per-bucket. *

*/ public void deleteBucketPolicy(DeleteBucketPolicyRequest deleteBucketPolicyRequest) throws Ks3ClientException, Ks3ServiceException; public void putBucketStorageQuota(String bucketName, Long quota) throws Ks3ClientException, Ks3ServiceException; public void putBucketStorageQuota(PutBucketStorageQuotaRequest request) throws Ks3ClientException, Ks3ServiceException; public BucketStorageQuota getBucketStorageQuota(GetBucketStorageQuotaRequest getBucketQuotaRequest) throws Ks3ClientException, Ks3ServiceException; public void putObjectTagging(String bucketName, String objectName, ObjectTagging objectTagging); public void putObjectTagging(PutObjectTaggingRequest request); public ObjectTagging getObjectTagging(String bucketName, String objectName); public ObjectTagging getObjectTagging(String bucketName, String objectName, String versionId); public ObjectTagging getObjectTagging(GetObjectTaggingRequest request); public void deleteObjectTagging(String bucketName, String objectName); public void deleteObjectTagging(DeleteObjectTaggingRequest request); public void setBucketVersioning(String bucketName, BucketVersioningConfiguration configuration); public void setBucketVersioning(SetBucketVersioningRequest request); public BucketVersioningConfiguration getBucketVersioning(String bucketName); public BucketVersioningConfiguration getBucketVersioning(GetBucketVersioningRequest request); public InitiateBucketWormResult initiateBucketWorm(InitiateBucketWormRequest request); public InitiateBucketWormResult initiateBucketWorm(String bucketName, int retentionPeriodInDays); public void completeBucketWorm(CompleteBucketWormRequest request); public void completeBucketWorm(String bucketName, String wormId); public void extendBucketWorm(ExtendBucketWormRequest request); public void extendBucketWorm(String bucketName, String wormId, int retentionPeriodInDays); public void abortBucketWorm(AbortBucketWormRequest request); public void abortBucketWorm(String bucketName); public GetBucketWormResult getBucketWorm(GetBucketWormRequest request); public GetBucketWormResult getBucketWorm(String bucketName); public void putBucketEncryption(String bucketName, ServerSideEncryptionConfiguration serverSideEncryptionConfiguration); public void putBucketEncryption(PutBucketEncryptionRequest request); public GetBucketEncryptionResult getBucketEncryption(String bucketName); public GetBucketEncryptionResult getBucketEncryption(GetBucketEncryptionRequest request); public void deleteBucketEncryption(String bucketName); public void deleteBucketEncryption(DeleteBucketEncryptionRequest request); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy