阿里云oss使用文档,中文版

/**
 * 授权给 Apache 软件基金会 (ASF)
 * 或更多贡献者许可协议。 请参阅 NOTICE 文件
 * 与本作品一起分发以获取更多信息
 * 关于版权归属。 ASF 许可此文件
 * 根据 Apache 许可证 2.0 版(
 * “许可”);除非符合规定,否则您不得使用此文件
 * 使用许可证。 您可以在以下位置获取许可证的副本
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * 除非适用法律要求或书面同意,
 * 根据许可证分发的软件在
 * “按原样”计算,不作任何保证或条件
 * KIND,明示或暗示。 请参阅许可证
 * 管理权限和限制的特定语言
 * 根据许可。
 */
package com.liyajie.networkdisk.demos.oss;

import java.io.File;
import java.io.InputStream;
import java.net.URL;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.aliyun.oss.ClientException;
import com.aliyun.oss.HttpMethod;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.common.auth.Credentials;
import com.aliyun.oss.common.comm.ResponseMessage;
import com.aliyun.oss.model.*;
import com.aliyun.oss.model.SetBucketCORSRequest.CORSRule;



/**
* 阿里云OSS(对象存储服务)入口界面
 * <p>
 * 对象存储服务(又名OSS)是海量、安全、低成本和高度
 * 可靠的公共存储,可随时随地通过以下方式访问
 * REST API、SDK 或 Web 控制台。<br />
 * 开发者可以使用OSS创建任何需要海量数据存储的服务
 * 和访问吞吐量,例如媒体共享 Web 应用程序、云存储服务
 * 或企业或个人数据备份。
 * </p>
 */
public interface OSS {

 /**
     * 切换到具有指定凭据的其他用户
     *
     * @param creds
     * 要切换到的凭据。
     */
    public void switchCredentials(Credentials creds);

    /**
     * 关闭OSS实例(释放所有资源) OSS实例是
     * 调用其 shutdown() 后不可用。
     */
    public void shutdown();

   /**
     * 创建 {@link Bucket} 实例。指定的存储桶名称必须为
     * 全球唯一,并遵循
     * https://www.alibabacloud.com/help/doc-detail/31827.htm?spm=a3c0i.o32012en
     * .a3.1.64ece5e0jPpa2t。
     *
     * @param bucketName
     * 存储桶名称
     */
    public Bucket createBucket(String bucketName) throws OSSException, ClientException;

   /**
     * 创建指定 CreateBucketRequest 的 {@link Bucket} 实例
     *信息。
     *
     * @param createBucketRequest
     * {@link CreateBucketRequest} 的实例,至少具有
     * 存储桶名称信息。
     */
    public Bucket createBucket(CreateBucketRequest createBucketRequest) throws OSSException, ClientException;

    /**
     * 删除 {@link Bucket} 实例。非空存储桶不能删除。
     *
     * @param bucketName
     * 要删除的存储桶名称。
     */
    public void deleteBucket(String bucketName) throws OSSException, ClientException;

   /**
     * 删除 {@link Bucket} 实例。
     *
     * @param genericRequest
     * 具有存储桶名称的通用请求实例
     *信息。
     */
    public void deleteBucket(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
     * 返回当前账户的所有 {@link Bucket} 实例。
     *
     * @return {@link Bucket} 实例列表。如果没有存储桶,则
     * list 将为空(而不是 null)。
     */
    public List<Bucket> listBuckets() throws OSSException, ClientException;

    /**
   * 返回当前账户的所有 {@link Bucket} 实例,这些实例满足
     * 指定条件。
     *
     * @param prefix
     * 返回的存储桶名称的前缀。如果为 null,则存储桶
     * 名称可以有任意前缀。
     * @param marker
     * 存储桶的字典顺序的起点
     *返回。如果为 null,则返回
     * 词典顺序。例如,如果账户具有存储桶
     * BK1、BK2、BK3。如果标记设置为 bk2,则只有 bk2 和
     * BK3 符合标准。但是,如果标记为 null,则所有
     * 三个桶符合标准。
     * @param maxKeys
     * 要返回的最大存储桶计数。有效值为 1 到 1000,
     * 如果为 null,则默认值为 100。
     * @return {@link Bucket}实例列表。
     */
    public BucketList listBuckets(String prefix, String marker, Integer maxKeys) throws OSSException, ClientException;

    /**
     * 返回当前账户的所有 {@link Bucket} 实例,这些实例满足
     * 指定条件。
     *
     * @param listBucketsRequest
     * 定义条件的 ListBucketsRequest 实例
     * 可能对前缀、标记、maxKeys 有要求。
     * @return {@link Bucket}实例列表。
     */
    public BucketList listBuckets(ListBucketsRequest listBucketsRequest) throws OSSException, ClientException;

    /**
* 在 {@link Bucket} 上应用访问控制列表 (ACL)。
     *
     * @param bucketName
     * 存储桶名称。
     * @param acl
     * {@link CannedAccessControlList} 实例。如果实例是
     * null,存储桶上没有 ACL 更改(但请求仍然有效
     * 已发送)。
     */
    public void setBucketAcl(String bucketName, CannedAccessControlList acl) throws OSSException, ClientException;

    /**
   * 发送在 {@link Bucket} 实例上应用 ACL 的请求。
     *
     * @param setBucketAclRequest
     * SetBucketAclRequest 实例,用于指定 ACL 和
     * 存储桶信息。
     */
    public void setBucketAcl(SetBucketAclRequest setBucketAclRequest) throws OSSException, ClientException;

    /**
    * 返回 {@link Bucket} 实例的访问控制列表 (ACL)。
     *
     * @param bucketName
     * 存储桶名称。
     * @return 访问控制列表(ACL) {@link AccessControlList}。
     */
    public AccessControlList getBucketAcl(String bucketName) throws OSSException, ClientException;

    /**
     * 获取 {@link Bucket} 实例的访问控制列表 (ACL)。
     *
     * @param genericRequest
     * 具有存储桶名称的 {@link GenericRequest} 实例
     *信息。
     * @return {@link AccessControlList} 实例。
     */
    public AccessControlList getBucketAcl(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
   * 获取 {@link Bucket} 的元数据。
     *
     * @param bucketName
     * 存储桶名称。
     *
     * @return {@link BucketMetadata} 实例。
     */
    public BucketMetadata getBucketMetadata(String bucketName) throws OSSException, ClientException;

    /**
   * 获取 {@link Bucket} 的所有元数据。
     *
     * @param genericRequest
     * 指定存储桶名称的通用请求。
     *
     * @return {@link BucketMetadata} 实例。
     *
     */
    public BucketMetadata getBucketMetadata(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
     * 在 {@link Bucket} 实例上设置 http referer
     * 存储桶名称。
     *
     * @param bucketName
     * 存储桶名称。
     * @param referer
     * {@link BucketReferer} 实例。如果为 null,它将创建一个
     * {@link BucketReferer} 实例。
     */
    public void setBucketReferer(String bucketName, BucketReferer referer) throws OSSException, ClientException;

    /**
  * 在参数中设置 {@link Bucket} 实例上的 http referer
     * setBucketRefererRequest。
     *
     * @param setBucketRefererRequest
     * {@link SetBucketRefererRequest} 实例,指定
     * 存储桶名称和 {@link BucketReferer} 实例。
     */
    public void setBucketReferer(SetBucketRefererRequest setBucketRefererRequest) throws OSSException, ClientException;

    /**
* 返回 {@link Bucket} 指定的 http referer 信息
     * 存储桶名称。
     *
     * @param bucketName
     * 存储桶名称
     * @return {@link BucketReferer} 实例。BucketReferer 对象
     * 如果没有 HTTP Referer,则返回空的 referer 信息
     *信息。
     */
    public BucketReferer getBucketReferer(String bucketName) throws OSSException, ClientException;

    /**
    * 返回 {@link Bucket} 指定的 http referer 信息
     * GenericRequest 对象中的存储桶名称。
     *
     * @param genericRequest
     * {@link GenericRequest} 实例。
     * @return  {@link BucketReferer}。
     */
    public BucketReferer getBucketReferer(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
    * 返回托管 {@link Bucket} 实例的数据中心名称。
     * 截至 2017 年 3 月 8 日,有效的数据中心名称为 oss-cn-hangzhou,
     * OSS-cn-青岛、oss-cn-北京、oss-cn-香港、oss-cn-深圳,
     * oss-cn-shanghai、oss-us-west-1、oss-us-east-1 和 oss-ap-southeast-1。
     *
     * @param bucketName
     * 存储桶名称。
     * @return 字符串中的数据中心名称。
     */
    public String getBucketLocation(String bucketName) throws OSSException, ClientException;

    /**
     * 返回指定 {@link Bucket} 实例的数据中心名称
     * 由 GenericRequest 托管。
     *
     * @param genericRequest
     * {@link GenericRequest} 实例,包含存储桶名称信息。
     * @return 字符串中的数据中心名称。
     */
    public String getBucketLocation(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
  * 设置存储桶名称指定的 {@link Bucket} 实例上的标签
     *
     * @param bucketName
     * 存储桶名称。
     * @param tags
     * 包含 key,value 对形式的标签的字典
     */
    public void setBucketTagging(String bucketName, Map<String, String> tags) throws OSSException, ClientException;

    /**
     * 在 {@link Bucket} 实例上设置标签。
     *
     * @param bucketName
     * 存储桶名称。
     * @param tagSet
     * {@link TagSet} 实例,其标签形式为 key, * value paris。
     */
    public void setBucketTagging(String bucketName, TagSet tagSet) throws OSSException, ClientException;

    /**
   * 在 {@link Bucket} 实例上设置标签
     * {@link SetBucketTaggingRequest} 对象。
     *
     * @param setBucketTaggingRequest
     * {@link SetBucketTaggingRequest} 实例
     * 信息以及标签信息。
     */
    public void setBucketTagging(SetBucketTaggingRequest setBucketTaggingRequest) throws OSSException, ClientException;

    /**
    * 获取 {@link Bucket} 实例的所有标签。
     *
     * @param bucketName
     * 存储桶名称
     * @return 一个 {@link TagSet} 实例。如果没有标记,则 TagSet 对象
     * 返回空标签信息。
     */
    public TagSet getBucketTagging(String bucketName) throws OSSException, ClientException;

    /**
    * 获取 {@link Bucket} 实例的标签。
     *
     * @param genericRequest
     * {@link GenericRequest} 实例。
     * @return 一个 {@link TagSet} 实例。
     */
    public TagSet getBucketTagging(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
     * 清除 {@link Bucket} 实例的所有标签。
     *
     * @param bucketName
     * 存储桶名称
     */
    public void deleteBucketTagging(String bucketName) throws OSSException, ClientException;

    /**
    * 清除 {@link Bucket} 实例的所有标签。
     *
     * @param genericRequest
     * 具有存储桶名称的 {@link GenericRequest} 实例
     */
    public void deleteBucketTagging(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
     * 检查 {@link Bucket} 是否存在。
     *
     * @param bucketName
     * 存储桶名称。
     * @return 如果存储桶存在,则返回 true,如果不存在,则返回 false。
     */
    public boolean doesBucketExist(String bucketName) throws OSSException, ClientException;

    /**
     * 检查{@link Bucket}是否存在。
     *
     * @param genericRequest
     * {@link GenericRequest} 实例。
     * @return 如果存储桶存在,则返回 true,如果不存在,则返回 false。
     */
    public boolean doesBucketExist(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
     * 列出指定 {@link Bucket} 下的所有对象
     *
     * @param bucketName
     * 存储桶名称
     * @return {@link ObjectListing} 实例,其中包含所有对象。
     */
    public ObjectListing listObjects(String bucketName) throws OSSException, ClientException;

    /**
     * 列出指定 {@link Bucket} 下的所有对象,并指定
     *前缀。
     *
     * @param bucketName
     * 存储桶名称。
     * @param prefix
     * 返回对象的前缀必须具有。
     * @return 包含所有对象的 {@link ObjectListing} 实例
     * @throws OSSException
     * @throws ClientException
     */
    public ObjectListing listObjects(String bucketName, String prefix) throws OSSException, ClientException;

    /**
     * 在参数中列出指定 {@link Bucket} 下的所有对象
     * {@link ListObjectsRequest}
     *
     * @param listObjectsRequest
     * {@link ListObjectsRequest} 实例,用于定义
     * 存储桶名称以及前缀、标记、
     * maxKeys、分隔符等
     * @return 一个 {@link ObjectListing} 实例,其对象满足
     *标准
     * @throws OSSException
     * @throws ClientException
     */
    public ObjectListing listObjects(ListObjectsRequest listObjectsRequest) throws OSSException, ClientException;

    /**
     * 将文件从 {@link InputStream} 上传到 {@link Bucket}
     *实例。它覆盖现有的存储桶,并且存储桶必须存在。
     *
     * @param bucketName
     * 存储桶名称。
     * @param key
     * 对象键。
     * @param input
     * {@link InputStream} 实例。必须是
     *读。
     */
    public PutObjectResult putObject(String bucketName, String key, InputStream input)
            throws OSSException, ClientException;

    /**
     * 将文件从 @{link InputStream} 上传到 {@link Bucket}
     * {@link ObjectMetadata} 信息。
     *
     * @param bucketName
     * 存储桶名称。
     * @param key
     * 对象键。
     * @param input* {@link InputStream} 实例。必须是
     *      读。
     * @param metadata
     * {@link ObjectMetadata} 实例。如果未指定
     * Content-Length 信息,数据按 chunked 编码
     * 传输编码。
     */
    public PutObjectResult putObject(String bucketName, String key, InputStream input, ObjectMetadata metadata)
            throws OSSException, ClientException;

    /**
   * 将文件从文件上传到 {@link Bucket}
     * {@link ObjectMetadata}。
     *
     * @param bucketName
     * 存储桶名称。
     * @param key
     * 对象键。
     * @param file
     * 要从中读取的文件对象。
     * @param metadata
     * {@link ObjectMetadata} 实例。如果未指定
     * Content-Length 信息,数据按 chunked 编码
     * 传输编码。
     */
    public PutObjectResult putObject(String bucketName, String key, File file, ObjectMetadata metadata)
            throws OSSException, ClientException;

    /**
   * 将文件从文件上传到 {@link Bucket}。
     *
     * @param bucketName
     * 存储桶名称。
     * @param key
     * 对象键。
     * @param file
     * 要从中读取的文件对象。
     */
    public PutObjectResult putObject(String bucketName, String key, File file) throws OSSException, ClientException;

    /**
   * 将文件上传到 {@link Bucket}。
     *
     * @param putObjectRequest
     * 具有存储桶名称的 {@link PutObjectRequest} 实例,
     * 对象键、元数据信息。
     * @return {@link PutObjectResult} 实例。
     * @throws OSSException
     * @throws ClientException
     */
    public PutObjectResult putObject(PutObjectRequest putObjectRequest) throws OSSException, ClientException;

    /**
     * 将文件从指定的文件路径上传到签名的 URL,使用
     * 指定标头
     *
     * @param signedUrl
     * 签名 URL,包含存储桶名称、对象密钥、账户
     * 信息和访问的 ID 及其签名。网址是
     * 建议由 generatePresignedUrl() 生成。
     * @param filePath
     * 要从中读取的文件路径
     * @param requestHeaders
     * 请求头,包括标准或自定义的 http 头
     * 由 PutObject REST API 记录。
     * @return {@link PutObjectResult} 实例。
     */
    public PutObjectResult putObject(URL signedUrl, String filePath, Map<String, String> requestHeaders)
            throws OSSException, ClientException;

    /**
    * 将文件从指定的文件路径上传到签名的 URL,使用
     * 指定标头,带有使用分块传输编码的标志。
     *
     * @param signedUrl
     * 签名 URL,包含存储桶名称、对象密钥、账户
     * 信息和访问的 ID 及其签名。网址是
     * 建议由 generatePresignedUrl() 生成。
     * @param filePath
     * 要从中读取的文件路径。
     * @param requestHeaders
     * 请求头,包括标准或自定义的 http 头
     * 由 PutObject REST API 记录。
     * @param useChunkEncoding
     * 使用分块传输编码的标志。
     * @return {@link PutObjectResult} 实例。
     */
    public PutObjectResult putObject(URL signedUrl, String filePath, Map<String, String> requestHeaders,
                                     boolean useChunkEncoding) throws OSSException, ClientException;

    /**
     * 使用
     * 指定的标头。
     *
     * @param signedUrl
     * 签名 Url,包含存储桶名称、对象键、账户
     * 信息和访问的 ID 及其签名。网址是
     * 建议由 generatePresignedUrl() 生成。
     * @param requestContent
     * {@link InputStream} 实例。
     * @param contentLength
     * 提示要编写的内容长度。
     * @param requestHeaders
     * 请求头,包括标准或自定义的 http 头
     * 由 PutObject REST API 记录。
     * @return {@link PutObjectResult} 实例。
     */
    public PutObjectResult putObject(URL signedUrl, InputStream requestContent, long contentLength,
                                     Map<String, String> requestHeaders) throws OSSException, ClientException;

    /**
     * 使用
     * 指定的标头。
     *
     * @param signedUrl
     * 签名 Url,包含存储桶名称、对象键、账户
     * 信息和访问的 ID 及其签名。网址是
     * 建议由 generatePresignedUrl() 生成。
     * @param requestContent
     * {@link InputStream} 实例。
     * @param contentLength
     * 提示要编写的内容长度。如果 useChunkEncoding 为 true,
     * 则使用 -1。
     * @param requestHeaders
     * Rquest 头,包括标准或自定义的 http 头
     * 由 PutObject REST API 记录。
     * @param useChunkEncoding
     * 使用分块传输编码的标志。
     * @return {@link PutObjectResult} 实例。
     */
    public PutObjectResult putObject(URL signedUrl, InputStream requestContent, long contentLength,
                                     Map<String, String> requestHeaders, boolean useChunkEncoding) throws OSSException, ClientException;

    /**
    * 将OSS中已有的文件从源存储桶复制到目标存储桶。
     * 如果目标文件存在,它将被源文件覆盖。
     *
     * @param sourceBucketName
     * 源对象的存储桶名称。
     * @param sourceKey
     * 源对象的键。
     * @param destinationBucketName
     * 目标对象的存储桶名称。
     * @param destinationKey
     * 目标对象的键。
     * @return 一个 {@link CopyObjectResult} 实例。
     * @throws OSSException
     * @throws ClientException
     */
    public CopyObjectResult copyObject(String sourceBucketName, String sourceKey, String destinationBucketName,
                                       String destinationKey) throws OSSException, ClientException;

    /**
     * 将OSS中已有的文件从源存储桶复制到目标存储桶。
     * 如果目标文件存在,它将被源文件覆盖。
     *
     * @param copyObjectRequest
     * 指定源的 {@link CopyObjectRequest} 实例
     * 文件、源存储桶和目标文件、目标存储桶。
     * @return 一个 {@link CopyObjectResult} 实例。
     * @throws OSSException
     * @throws ClientException
     */
    public CopyObjectResult copyObject(CopyObjectRequest copyObjectRequest) throws OSSException, ClientException;

    /**
    * 从 {@link Bucket} 获取 {@link OSSObject}。
     *
     * @param bucketName
     * 存储桶名称。
     * @param key
     * 对象键。
     * @return {@link OSSObject} 实例。呼叫者负责关闭
     * 使用后的连接。
     */
    public OSSObject getObject(String bucketName, String key) throws OSSException, ClientException;

    /**
     * 从 {@link GetObjectRequest} 指定的文件下载文件
     *参数。
     *
     * @param getObjectRequest
     * 指定存储桶的 {@link GetObjectRequest} 实例
     * 名称和对象键。
     * @param file
     * 要下载的目标文件实例。
     */
    public ObjectMetadata getObject(GetObjectRequest getObjectRequest, File file) throws OSSException, ClientException;

    /**
     * 获取 {@link OSSObject} 从中指定的存储桶
    * {@link GetObjectRequest} 参数。
     *
     * @param getObjectRequest
     * 指定存储桶的 {@link GetObjectRequest} 实例
     * 名称和对象键。
     * @return 存储桶文件的{@link OSSObject}实例。调用方是
     * 负责在使用后关闭连接。
     */
    public OSSObject getObject(GetObjectRequest getObjectRequest) throws OSSException, ClientException;

    /**
     * 从签名的 URL 中获取 {@link OSSObject}。
     *
     * @param signedUrl
     * 签名的 URL。
     * @param requestHeaders
     * 请求头,包括http标准或OSS定制
     *头。
     * @return A{@link OSSObject} 实例。呼叫者负责关闭
     * 使用后的连接。
     */
    public OSSObject getObject(URL signedUrl, Map<String, String> requestHeaders) throws OSSException, ClientException;

    /**
    * 获取 {@link OSSObject} 的简化元数据信息。
     * <p>
     * 简化的元数据包括 ETag、Size、LastModified 等
     * 轻量级,然后是 GetObjectMeta()。
     * </p>
     *
     * @param bucketName
     * 存储桶名称。
     * @param key
     * 对象键。
     * @return 对象的 {@link SimplifiedObjectMeta} 实例。
     */
    public SimplifiedObjectMeta getSimplifiedObjectMeta(String bucketName, String key)
            throws OSSException, ClientException;

    /**
     * 获取 {@link OSSObject} 的简化元数据信息。
     * <p>
     * 简化的元数据包括 ETag、Size、LastModified 等
     * 轻量级,然后是 GetObjectMeta()。
     * </p>
     *
     * @param genericRequest
     * 指定存储桶名称和对象键的通用请求
     * @return 指定文件的 {@link SimplifiedObjectMeta} 实例。
     */
    public SimplifiedObjectMeta getSimplifiedObjectMeta(GenericRequest genericRequest)
            throws OSSException, ClientException;

    /**
    * 获取 {@link OSSObject} 的所有元数据。
     *
     * @param bucketName
     * 存储桶名称。
     * @param key
     * 对象键。
     *
     * @return {@link ObjectMetadata} 实例。
     */
    public ObjectMetadata getObjectMetadata(String bucketName, String key) throws OSSException, ClientException;

    /**
     * 获取 {@link OSSObject} 的所有元数据。
     *
     * @param genericRequest
     * 指定存储桶名称和对象的通用请求
     *钥匙。
     *
     * @return {@link ObjectMetadata} 实例。
     *
     */
    public ObjectMetadata getObjectMetadata(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
     * 将数据追加到
     * {@link AppendObjectRequest}。它不适用于普通的OSS对象。
     *
     * @param appendObjectRequest
     * 一个 {@link AppendObjectRequest} 实例,它指定
     * 存储桶名称、可附加对象键、文件或
     * 要追加的 InputStream 对象。
     * @return 一个 {@link AppendObjectResult} 实例。
     */
    public AppendObjectResult appendObject(AppendObjectRequest appendObjectRequest)
            throws OSSException, ClientException;

    /**
    * 删除存储桶名称和对象键指定的{@link OSSObject}。
     *
     * @param bucketName
     * 存储桶名称。
     * @param key
     * 对象键。
     */
    public void deleteObject(String bucketName, String key) throws OSSException, ClientException;

    /**
     * 删除 {@link GenericRequest} 指定的 {@link OSSObject}
     *实例。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     * 名称和对象键。
     */
    public void deleteObject(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
 * 批量删除特定存储桶下的指定文件。如果文件
     * 不存在,操作仍将返回成功。
     *
     * @param deleteObjectsRequest
     * 一个 {@link DeleteObjectsRequest} 实例,它指定
     * 要删除的存储桶和文件键。
     * @return 一个 {@link DeleteObjectsResult} 实例,它指定每个
     * 文件在正常模式下的结果或仅在相当的模式下失败删除
     *模式。默认情况下,这是正常模式。
     */
    public DeleteObjectsResult deleteObjects(DeleteObjectsRequest deleteObjectsRequest)
            throws OSSException, ClientException;

    /**
    * 检查特定的 {@link OSSObject} 是否存在于特定的
     * {@link Bucket}。302 重定向或 OSS 镜像不会影响结果
     * 此功能。
     *
     * @param bucketName
     * 存储桶名称。
     * @param key
     * 对象键。
     * 如果存在,则@return True;如果不是,则为 false。
     */
    public boolean doesObjectExist(String bucketName, String key) throws OSSException, ClientException;

    /**
     * 检查特定的 {@link OSSObject} 是否存在于特定的
     * {@link Bucket}。302 重定向或 OSS 镜像不会影响结果
     * 此功能。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     * 和对象键。
     * 如果存在,则@return True;如果不是,则为 false。
     */
    public boolean doesObjectExist(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
   * 检查特定的 {@link OSSObject} 是否存在于特定的
     * {@link Bucket}。302 重定向或 OSS 镜像会影响
     * 如果 isOnlyInOSS 为 true,则此函数。
     *
     * @param bucketName
     * 存储桶名称。
     * @param key
     * 对象键。
     * @param isOnlyInOSS
     * 如果忽略 302 重定向或镜像,则为 true;如果考虑
     * 302 重定向或镜像,可以下载对象
     * 当文件存在于源代码中但不存在时,从源代码到 OSS
     * 在 OSS 中。
     * 如果文件存在,则@return True;如果不是,则为 false。
     */
    public boolean doesObjectExist(String bucketName, String key, boolean isOnlyInOSS);

    /**
     * 检查是否存在特定的 {@link OSSObject}。
     *
     * @param headObjectRequest
     * 一个 {@link HeadObjectRequest} 实例,它指定
     * 存储桶名称和对象键。约束信息将被忽略。
     * 如果文件存在,则@return True;如果不是,则为 false。
     */
    @Deprecated
    public boolean doesObjectExist(HeadObjectRequest headObjectRequest) throws OSSException, ClientException;

    /**
* 设置 {@link OSSObject} 实例的访问控制列表 (ACL)。
     *
     * @param bucketName
     * 存储桶名称。
     * @param key
     * 对象键。
     * @param cannedAcl
     * 以下三个值之一:Private、PublicRead 或
     * PublicReadWrite。
     */
    public void setObjectAcl(String bucketName, String key, CannedAccessControlList cannedAcl)
            throws OSSException, ClientException;

    /**
  * 设置 {@link OSSObject} 实例的访问控制列表 (ACL)。
     *
     * @param setObjectAclRequest
     * 一个 {@link SetObjectAclRequest} 实例,它指定
     * 对象的存储桶名称和键以及 ACL 信息。
     */
    public void setObjectAcl(SetObjectAclRequest setObjectAclRequest) throws OSSException, ClientException;

    /**
     * 获取OSS对象的ACL。
     *
     * @param bucketName
     * 存储桶名称。
     * @param key
     * 对象键。
     * @return 对象的 {@link ObjectAcl} 实例。
     */
    public ObjectAcl getObjectAcl(String bucketName, String key) throws OSSException, ClientException;

    /**
    * 获取OSS对象的ACL。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     * 名称和对象键。
     */
    public ObjectAcl getObjectAcl(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
   * 恢复存档存储对象。该功能不适用于
     * 正常或IA存储。restoreObject() 需要在
     * 在存档对象上调用 getObject()。
     *
     * @param bucketName
     * 存储桶名称。
     * @param key
     * 对象键。
     * @return 一个 {@link RestoreObjectResult} 实例。
     */
    public RestoreObjectResult restoreObject(String bucketName, String key) throws OSSException, ClientException;

    /**
     * 恢复存档存储对象。该功能不适用于
     * 正常或IA存储。restoreObject() 需要在
     * 在存档对象上调用 getObject()。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     * 名称和对象键。
     * @return 一个 {@link RestoreObjectResult} 实例。
     */
    public RestoreObjectResult restoreObject(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
    * 生成一个签名的 URL,用于使用 HTTP GET 访问 {@link OSSObject}
     *方法。
     *
     * @param bucketName
     * 存储桶名称。
     * @param key
     * 对象键。
     * @param expiration
     * URL 的过期时间。
     * @return 可用于访问
     * {@link OSSObject} 对象。
     * @throws ClientException
     */
    public URL generatePresignedUrl(String bucketName, String key, Date expiration) throws ClientException;

    /**
    * 生成一个签名的 URL,用于访问 {@link OSSObject}
     * 特定的 HTTP 方法。
     *
     * @param bucketName
     * 存储桶名称。
     * @param key
     * 对象键。
     * @param expiration
     * URL 的过期时间。
     * @param method
     * HTTP 方法,只有 {@link HttpMethod#GET} 和
     * 支持 {@link HttpMethod#PUT}。
     * @return 可用于访问
     * {@link OSSObject} 对象。
     * @throws ClientException
     */
    public URL generatePresignedUrl(String bucketName, String key, Date expiration, HttpMethod method)
            throws ClientException;

    /**
     * 生成一个签名的 URL,用于访问 {@link OSSObject}
     * 特定的 HTTP 方法。
     *
     * @param request
     * 一个 {@link GeneratePresignedUrlRequest} 实例,它指定
     * 存储桶名称、文件键、过期时间、HTTP 方法和
     * 内容的 MD5 签名等。
     * @return 可用于访问
     * {@link OSSObject} 对象。
     * @throws ClientException
     */
    public URL generatePresignedUrl(GeneratePresignedUrlRequest request) throws ClientException;

    /**
     * 在特定的 {@link Bucket} 上设置图像处理属性
     *
     * @param request
     * 一个 {@link PutBucketImageRequest} 实例,它指定了一些
     * 图像处理的属性。
     * @throws OSSException
     * @throws ClientException
     */
    public void putBucketImage(PutBucketImageRequest request) throws OSSException, ClientException;

    /**
     * 获取特定 {@link Bucket} 上的图像处理属性。
     *
     * @param bucketName
     * 存储桶名称
     * @return 一个 {@link GetBucketImageResult} 实例,其属性为
     * 图像处理
     * @throws OSSException
     * @throws ClientException
     */
    public GetBucketImageResult getBucketImage(String bucketName) throws OSSException, ClientException;

    /**
    * 获取特定 {@link Bucket} 上的图像处理属性。
     *
     * @param bucketName
     * 存储桶名称。
     * @param genericRequest
     * 源请求。
     * @return 具有 image 属性的 {@link GetBucketImageResult}
     *加工。
     * @throws OSSException
     * @throws ClientException
     */
    public GetBucketImageResult getBucketImage(String bucketName, GenericRequest genericRequest)
            throws OSSException, ClientException;

    /**
     * 删除特定 {@link Bucket} 上的图像处理属性。
     *
     * @param bucketName
     * 存储桶名称
     * @throws OSSException
     * @throws ClientException
     */
    public void deleteBucketImage(String bucketName) throws OSSException, ClientException;

    /**
     * 删除特定 {@link Bucket} 上的图像处理属性。
     *
     * @param bucketName
     * 存储桶名称
     * @param genericRequest
     * 源请求
     * @throws OSSException
     * @param genericRequest
     * @throws ClientException
     */
    public void deleteBucketImage(String bucketName, GenericRequest genericRequest)
            throws OSSException, ClientException;

    /**
     * 删除 {@link Bucket} 下的参数 styleName 命名的样式
     *
     * @param bucketName
     * 存储桶名称
     * @param styleName
     * 样式名称
     * @throws OSSException
     * @throws ClientException
     */
    public void deleteImageStyle(String bucketName, String styleName) throws OSSException, ClientException;

    /**
     * 删除 {@link Bucket} 下的参数 styleName 命名的样式
     *
     * @param bucketName
     * 存储桶名称
     * @param styleName
     * 样式名称
     * @param genericRequest
     * 源请求
     * @throws OSSException
     * @throws ClientException
     */
    public void deleteImageStyle(String bucketName, String styleName, GenericRequest genericRequest)
            throws OSSException, ClientException;

    /**
     * 在 {@link Bucket} 下添加新样式。
     *
     * @param putImageStyleRequest
     * 具有存储桶名称的 {@link PutImageStyleRequest} 实例
     * 和款式信息
     * @throws OSSException
     * @throws ClientException
     */
    public void putImageStyle(PutImageStyleRequest putImageStyleRequest) throws OSSException, ClientException;

    /**
     * 获取 {@link Bucket} 下的参数 styleName 命名的样式
     *
     * @param bucketName
     * 存储桶名称。
     * @param styleName
     * 样式名称。
     * @return 一个 {@link GetImageStyleResult} 实例,其样式为
     * 如果成功,则提供信息,如果失败,则提供错误代码。
     * @throws OSSException
     * @throws ClientException
     */
    public GetImageStyleResult getImageStyle(String bucketName, String styleName) throws OSSException, ClientException;

    /**
    * 获取 {@link Bucket} 下的参数 styleName 命名的样式
     *
     * @param bucketName
     * 存储桶名称。
     * @param styleName
     * 样式名称。
     * @param genericRequest
     * 源请求。
     * @return 一个 {@link GetImageStyleResult} 实例,其样式为
     * 如果成功,则提供信息,如果失败,则提供错误代码。
     * @throws OSSException
     * @throws ClientException
     */
    public GetImageStyleResult getImageStyle(String bucketName, String styleName, GenericRequest genericRequest)
            throws OSSException, ClientException;

    /**
     * 列出 {@link Bucket} 下的所有样式
     *
     * @param bucketName
     * 存储桶名称。
     * @return 存储桶所有样式的 {@link List}。如果没有风格,
     * 这将是一个空列表。
     * @throws OSSException
     * @throws ClientException
     */
    public List<Style> listImageStyle(String bucketName) throws OSSException, ClientException;

    /**
    * 列出 {@link Bucket} 下的所有样式
     *
     * @param bucketName
     * 存储桶名称。
     * @param genericRequest
     * 源请求。
     * @return 存储桶所有样式的 {@link List}。如果没有风格,
     * 这将是一个空列表。
     * @throws OSSException
     * OSS服务器端异常。
     * @throws ClientException
     * OSS客户端异常。
     */
    public List<Style> listImageStyle(String bucketName, GenericRequest genericRequest)
            throws OSSException, ClientException;

    /**
     * 根据参数创建镜像访问配置
     * setBucketProcessRequest。
     *
     * @param setBucketProcessRequest
     * 一个 {@link SetBucketTaggingRequest} 实例,其中包含
     * 图像访问配置,例如启用原始图片
     * 保护等
     * @throws OSSException
     * OSS服务器端异常。
     * @throws ClientException
     * OSS客户端异常。
     */
    public void setBucketProcess(SetBucketProcessRequest setBucketProcessRequest) throws OSSException, ClientException;

    /**
    * 获取存储桶的镜像访问配置。
     *
     * @param bucketName
     * 存储桶名称。
     * @return 一个 {@link BucketProcess},其中包含访问图像的
     * 如果成功,则进行配置。
     * @throws OSSException
     * OSS服务器端异常。
     * @throws ClientException
     * OSS客户端异常。
     */
    public BucketProcess getBucketProcess(String bucketName) throws OSSException, ClientException;

    /**
     * 获取存储桶的镜像访问配置
     *
     * @param genericRequest
     * 具有存储桶名称的 {@link GenericRequest} 实例。
     * @return 一个 {@link BucketProcess},其中包含访问图像的
     * 如果成功,则进行配置。
     * @throws OSSException
     * OSS服务器端异常。
     * @throws ClientException
     * OSS客户端异常。
     */
    public BucketProcess getBucketProcess(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
    * 启动多个部件上传
     * <p>
     * 在开始多部分上传之前,需要调用此方法
     * 要求OSS服务做一些初始化工作。通话成功后,
     * 它返回一个全局唯一的上传 ID,可用于
     * 后续操作,如暂停、查找多个部分等。这
     * 即使最大重试次数为
     * 大于 0,因为它不是幂等的。
     * </p>
     *
     * @param request
     * 一个 {@link InitiateMultipartUploadRequest} 实例,其中
     * 指定存储桶名称、对象键和元数据。
     * @return  {@link InitiateMultipartUploadResult} 实例,该实例具有
     * 如果成功,则为全局唯一 ID。
     * @throws ClientException
     */
    public InitiateMultipartUploadResult initiateMultipartUpload(InitiateMultipartUploadRequest request)
            throws OSSException, ClientException;

    /**
     * 列出执行多个部件上传的列表。
     * <p>
     * 那些已初始化但未完成的分段上传将由
     * 此方法。如果执行多个部件上传计数大于
     * maxUploads(最多可以是 1000),那么它将返回
     * nextUploadIdMaker 和 nextKeyMaker,可用于下一次调用。
     * 当参数请求中的 keyMarker 被指定时,它将列出正在执行的
     * 键大于 keyMarker 的分段上传
     * 字典顺序和分段上传,其键等于
     * keyMarker 和 uploadIds 在词典中大于 uploadIdMarker
     *次序。换句话说,keyMarker 的优先级高于
     * uploadIdMarker 和 uploadIdMarker 仅影响具有
     * 与 keyMarker 相同的键。
     * </p>
     *
     * @param request
     * {@link ListMultipartUploadsRequest} 实例。
     * @return MultipartUploadListing 一个 {@link MultipartUploadListing} 实例。
     * 成功调用后,它可能具有 nextKeyMarker 和
     * nextUploadIdMarker 用于 OSS 剩余时的下一次调用
     * 未返回上传内容。
     * @throws ClientException
     */
    public MultipartUploadListing listMultipartUploads(ListMultipartUploadsRequest request)
            throws OSSException, ClientException;

    /**
     * 列出多个零件上传中的所有零件。
     *
     * @param request
     * 一个 {@link ListPartsRequest} 实例。
     * @return 零件列表
     * @throws ClientException
     */
    public PartListing listParts(ListPartsRequest request) throws OSSException, ClientException;

    /**
     * 将零件上传到指定的多次上传。
     *
     * @param request
     * 指定存储桶的 {@link UploadPartRequest} 实例,
     * 对象键、上传 ID、部件号、内容和长度、MD5
     * 摘要和分块传输编码标志。
     * @return UploadPartResult 要指示的 {@link UploadPartResult} 实例
     * 上传结果。
     * @throws ClientException
     */
    public UploadPartResult uploadPart(UploadPartRequest request) throws OSSException, ClientException;

    /**
     * 将零件副本从现有源对象上传到目标对象
     * 指定的上传 ID 和零件编号
     *
     * @param request
     * 一个 {@link UploadPartCopyRequest} 实例,指定:1)
     * 源文件 2) 源文件的复制范围 3) 目标文件 4)
     * 目标文件的上传 ID 及其部件号 5) 约束
     * 例如 ETag 匹配或不匹配、上次修改的匹配或
     * 不匹配等
     * @return 具有部件号的 {@link UploadPartCopyResult} 实例
     * 和 ETag 成功上传后。
     * @throws OSSException
     * @throws ClientException
     */
    public UploadPartCopyResult uploadPartCopy(UploadPartCopyRequest request) throws OSSException, ClientException;

    /**
     * 中止多个部件上传。所有上传的数据将在OSS中发布。
     * 执行相同上传 ID 的上传将立即失败
     * 调用此方法后。
     *
     * @param request
     * 一个 {@link AbortMultipartUploadRequest} 实例,指定
     * 要中止的文件名和上传 ID。
     * @throws ClientException
     */
    public void abortMultipartUpload(AbortMultipartUploadRequest request) throws OSSException, ClientException;

    /**
     * 完成多个零件上传。
     * <p>
     * 所有部件上传完成后,需要调用此 API 完成
     * 上传。所有部件的编号及其 ETag 都是必需的,如果 ETag
     * 验证未通过,API 将失败。零件不是
     * 必须按顺序排列,最终文件的内容由
     * 在 partETags 列表中排序。
     * </p>
     *
     * <p>
     * 即使最大重试次数为
     * 大于 0,因为它不是幂等的。
     * </p>
     *
     * @param request
     * 一个 {@link CompleteMultipartUploadRequest} 实例,其中
     * 指定完成多个部件上传的所有参数。
     * @return 一个 {@link CompleteMultipartUploadResult} 实例,该实例具有
     * key、ETag、最终对象的 url。
     * @throws ClientException
     */
    public CompleteMultipartUploadResult completeMultipartUpload(CompleteMultipartUploadRequest request)
            throws OSSException, ClientException;

    /**
     * 将 CORS 规则添加到存储桶中。如果已使用
     * 其他规则,这将覆盖(而不是合并)它们。例如,如果
     * alibaba-inc.com 是受信任的来源,并被指定为允许 GET
     *方法。然后,在此请求中,使用 POST 方法指定它。在
     * 结束,alibaba-inc.com 只允许使用 POST 方法。
     *
     * @param request
     * 一个 {@link SetBucketCORSRequest} 对象,该对象定义了所有
     * CORS 规则。
     * @throws OSSException
     * @throws ClientException
     */
    public void setBucketCORS(SetBucketCORSRequest request) throws OSSException, ClientException;

    /**
     * 列出存储桶中的所有 CORS 规则。
     *
     * @param bucketName
     * 存储桶名称。
     * @return 存储桶下的 {@link CORSRule} 列表。
     * @throws OSSException
     * @throws ClientException
     */
    public List<CORSRule> getBucketCORSRules(String bucketName) throws OSSException, ClientException;

    /**
    * 列出存储桶中的所有 CORS 规则。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     *名字。
     * @return 存储桶下的 {@link CORSRule} 列表。
     * @throws OSSException
     * @throws ClientException
     */
    public List<CORSRule> getBucketCORSRules(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
    * 删除存储桶下的所有 CORS 规则。
     *
     * @param bucketName
     * 存储桶名称。
     * @throws OSSException
     * @throws ClientException
     */
    public void deleteBucketCORSRules(String bucketName) throws OSSException, ClientException;

    /**
    * 删除存储桶下的所有 CORS 规则。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     *名字。
     * @throws OSSException
     * @throws ClientException
     */
    public void deleteBucketCORSRules(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
     *已弃用的方法。
     */
    @Deprecated
    public ResponseMessage optionsObject(OptionsRequest request) throws OSSException, ClientException;

    /**
     * 启用或禁用 {@link Bucket} 的日志记录。要启用日志记录,
     * SetBucketLoggingRequest 对象中的 TargetBucket 属性必须为
     *指定。若要禁用日志记录,请将
     * SetBucketLoggingRequest 对象必须为 null。日志记录文件将是
     * 每小时滚动日志。
     *
     * @param request
     * 一个 {@link SetBucketLoggingRequest} 实例,它指定
     * 存储桶名称设置日志记录,目标存储桶存储
     * 日志记录数据和日志记录文件的前缀。
     */
    public void setBucketLogging(SetBucketLoggingRequest request) throws OSSException, ClientException;

    /**
    * 获取 {@link Bucket} 的日志记录设置。
     *
     * @param bucketName
     * 存储桶名称。
     * @return 包含日志记录的 {@link BucketLoggingResult} 实例
     * 设置,例如数据的目标存储桶、日志记录文件前缀。
     * @throws OSSException
     * @throws ClientException
     */
    public BucketLoggingResult getBucketLogging(String bucketName) throws OSSException, ClientException;

    /**
     * 获取 {@link Bucket} 的日志记录设置。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     *名字。
     * @return 包含日志记录的 {@link BucketLoggingResult} 实例
     * 设置,例如数据的目标存储桶、日志记录文件前缀。
     * @throws OSSException
     * @throws ClientException
     */
    public BucketLoggingResult getBucketLogging(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
     * 禁用 {@link Bucket} 上的日志记录。
     *
     * @param bucketName
     * 存储桶名称
     * @throws OSSException
     * @throws ClientException
     */
    public void deleteBucketLogging(String bucketName) throws OSSException, ClientException;

    /**
     * 禁用 {@link Bucket} 上的日志记录。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     *名字。
     * @throws OSSException
     * @throws ClientException
     */
    public void deleteBucketLogging(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
     * 设置 {@link Bucket} 的静态网站设置。设置
     * 包括必填主页、可选 404 页和路由
     *规则。如果主页为 null,则静态网站未启用
     * 桶。
     *
     * @param setBucketWebSiteRequest
     * 要设置的 {@link SetBucketWebsiteRequest} 实例。
     * @throws OSSException
     * @throws ClientException
     */
    public void setBucketWebsite(SetBucketWebsiteRequest setBucketWebSiteRequest) throws OSSException, ClientException;

    /**
    * 获取 {@link Bucket} 的静态网站设置。
     *
     * @param bucketName
     * 存储桶名称。
     * @return {@link BucketWebsiteResult} 实例
     * @throws OSSException
     * @throws ClientException
     */
    public BucketWebsiteResult getBucketWebsite(String bucketName) throws OSSException, ClientException;

    /**
    * 获取 {@link Bucket} 的静态 webite 设置。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     *名字。
     * @return 一个 {@link BucketWebsiteResult} 实例。
     * @throws OSSException
     * @throws ClientException
     */
    public BucketWebsiteResult getBucketWebsite(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
    * 删除 {@link Bucket} 的静态网站配置,这意味着
     * 禁用存储桶上的静态网站。
     *
     * @param bucketName
     * 存储桶名称
     * @throws OSSException
     * @throws ClientException
     */
    public void deleteBucketWebsite(String bucketName) throws OSSException, ClientException;

    /**
     * 删除 {@link Bucket} 的静态网站配置,这意味着
     * 禁用存储桶上的静态网站。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     *名字。
     * @throws OSSException
     * @throws ClientException
     */
    public void deleteBucketWebsite(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
    * 以 JSON 格式生成帖子策略表单字段。
     *
     * @param expiration
     * 保单到期时间。
     * @param  conds
     * 策略条件列表。
     * @return JSON 格式的策略字符串。
     */
    public String generatePostPolicy(Date expiration, PolicyConditions conds) throws ClientException;

    /**
     * 根据策略和访问密钥密钥密钥计算签名。
     *
     * @param postPolicy
     * 以 JSON 格式发布策略字符串,该字符串由
     * {@link #generatePostPolicy(日期, 策略条件)}。
     * @return bas464 字符串中的 Post 签名。
     */
    public String calculatePostSignature(String postPolicy);

    /**
     * 设置{@link Bucket}的生命周期规则。
     *
     * @param setBucketLifecycleRequest
     * 一个 {@link SetBucketWebsiteRequest} 实例,用于指定
     * 生命周期规则
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void setBucketLifecycle(SetBucketLifecycleRequest setBucketLifecycleRequest)
            throws OSSException, ClientException;

    /**
     * 获取 {@link Bucket} 的生命周期规则。
     *
     * @param bucketName
     * 存储桶名称。
     * @return {@link LifecycleRule} 的列表。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public List<LifecycleRule> getBucketLifecycle(String bucketName) throws OSSException, ClientException;

    /**
     * 获取 {@link Bucket} 的生命周期规则。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     *名字。
     * @return {@link LifecycleRule} 实例的列表。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public List<LifecycleRule> getBucketLifecycle(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
     * 删除所有 {@link Bucket} 的生命周期规则。
     *
     * @param bucketName
     * 要操作的存储桶名称。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void deleteBucketLifecycle(String bucketName) throws OSSException, ClientException;

    /**
    * 删除所有 {@link Bucket} 的生命周期规则。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     *名字。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void deleteBucketLifecycle(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
     * 添加 {@link Bucket} 的跨区域复制规则。
     *
     * @param addBucketReplicationRequest
     * 一个 {@link AddBucketReplicationRequest} 实例,指定
     * 复制规则。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void addBucketReplication(AddBucketReplicationRequest addBucketReplicationRequest)
            throws OSSException, ClientException;

    /**
    * 获取所有 {@link Bucket} 的跨区域复制规则。
     *
     * @param bucketName
     * 存储桶名称。
     * @return 存储桶下的 {@link ReplicationRule} 列表。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public List<ReplicationRule> getBucketReplication(String bucketName) throws OSSException, ClientException;

    /**
     * 获取所有 {@link Bucket} 的跨区域复制规则。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     *名字。
     * @return 存储桶下的 {@link ReplicationRule} 列表。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public List<ReplicationRule> getBucketReplication(GenericRequest genericRequest)
            throws OSSException, ClientException;

    /**
     * 删除指定{@link Bucket}的跨地域复制规则。
     *
     * @param bucketName
     * 存储桶名称。
     * @param replicationRuleID
     * 要删除的复制 ID。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void deleteBucketReplication(String bucketName, String replicationRuleID)
            throws OSSException, ClientException;

    /**
    * 删除指定{@link Bucket}的跨地域复制规则。
     *
     * @param deleteBucketReplicationRequest
     * {@link DeleteBucketReplicationRequest} 实例
     * 指定要删除的复制规则 ID。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void deleteBucketReplication(DeleteBucketReplicationRequest deleteBucketReplicationRequest)
            throws OSSException, ClientException;

    /**
    * 获取 {@link Bucket} 在指定跨区域的进度
     * 复制规则。
     *
     * @param bucketName
     * 存储桶名称。
     * @param replicationRuleID
     * 复制规则 ID。
     * @return 新数据和历史数据的复制进度
     *浮。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public BucketReplicationProgress getBucketReplicationProgress(String bucketName, String replicationRuleID)
            throws OSSException, ClientException;

    /**
     * 获取 {@link Bucket} 在指定跨区域的进度
     * 复制规则。
     *
     * @param getBucketReplicationProgressRequest
     * {@link GetBucketReplicationProgressRequest} 实例
     * 指定复制规则 ID 和存储桶名称。
     * @return 新数据和历史数据的复制进度
     *浮。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public BucketReplicationProgress getBucketReplicationProgress(
            GetBucketReplicationProgressRequest getBucketReplicationProgressRequest)
            throws OSSException, ClientException;

    /**
    * 获取 {@link Bucket} 的复制可访问的数据中心。
     *
     * @param bucketName
     * 存储桶名称。
     * @return 复制可访问的数据中心列表。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public List<String> getBucketReplicationLocation(String bucketName) throws OSSException, ClientException;

    /**
     * 获取 {@link Bucket} 的复制可访问的数据中心。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     *名字。
     * @return 复制可访问的数据中心列表。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public List<String> getBucketReplicationLocation(GenericRequest genericRequest)
            throws OSSException, ClientException;

    /**
    * 为 {@link Bucket} 实例添加 Cname。
     *
     * @param addBucketCnameRequest
     * 请求指定存储桶名称和 Cname
     *信息。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void addBucketCname(AddBucketCnameRequest addBucketCnameRequest) throws OSSException, ClientException;

    /**
     * 获取 {@link Bucket} 的 Cnames。
     *
     * @param bucketName
     * 存储桶名称。
     * @return 存储桶下的 Cnames 列表。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public List<CnameConfiguration> getBucketCname(String bucketName) throws OSSException, ClientException;

    /**
     * 获取 {@link Bucket} 的 Cnames。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     *名字。
     * @return 存储桶下的 Cnames 列表。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public List<CnameConfiguration> getBucketCname(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
     * 删除参数域指定的一个 {@link Bucket} 的 Cname。
     *
     * @param bucketName
     * 存储桶名称。
     * @param domain
     * cname。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void deleteBucketCname(String bucketName, String domain) throws OSSException, ClientException;

    /**
    * 删除参数指定的一个 {@link Bucket} 的特定 Cname
     *域。
     *
     * @param deleteBucketCnameRequest
     * 一个 {@link DeleteBucketCnameRequest} 实例,用于指定
     * 存储桶名称和要删除的域名
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void deleteBucketCname(DeleteBucketCnameRequest deleteBucketCnameRequest)
            throws OSSException, ClientException;

    /**
     * 获取 {@link Bucket} 的基本信息及其 ACL。
     *
     * @param bucketName
     * 存储桶名称。
     * @return {@link BucketInfo} 实例。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public BucketInfo getBucketInfo(String bucketName) throws OSSException, ClientException;

    /**
    * 获取 {@link Bucket} 的基本信息及其 ACL。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     *名字。
     * @return {@link BucketInfo} 实例。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public BucketInfo getBucketInfo(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
     * 获取 {@link Bucket} 的存储信息,例如对象计数,
     * 存储大小和执行分段上传。
     *
     * @param bucketName
     * 存储桶名称。
     * @return {@link BucketStat} 实例。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public BucketStat getBucketStat(String bucketName) throws OSSException, ClientException;

    /**
    * 获取 {@link Bucket} 的存储信息,例如对象计数,
     * 存储大小和执行分段上传。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     *名字。
     * @return {@link BucketStat} 实例。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public BucketStat getBucketStat(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
    * 设置 {@link Bucket} 的容量。
     *
     * @param bucketName
     * 存储桶名称。
     * @param userQos
     * 一个 {@link UserQos} 实例,用于指定容量(以 GB 为单位)
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void setBucketStorageCapacity(String bucketName, UserQos userQos) throws OSSException, ClientException;

    /**
     * 设置 {@link Bucket} 的容量。
     *
     * @param setBucketStorageCapacityRequest
     * 一个 {@link SetBucketStorageCapacityRequest} 实例,其中
     * 指定存储桶名称以及 UserQos 实例
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void setBucketStorageCapacity(SetBucketStorageCapacityRequest setBucketStorageCapacityRequest)
            throws OSSException, ClientException;

    /**
     * 获取 {@link Bucket} 的容量
     *
     * @param bucketName
     * 存储桶名称。
     * @return 具有容量信息的 {@link UserQos} 实例。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public UserQos getBucketStorageCapacity(String bucketName) throws OSSException, ClientException;

    /**
    * 获取 {@link Bucket} 的容量
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     *名字。
     * @return 具有容量信息的 {@link UserQos} 实例。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public UserQos getBucketStorageCapacity(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
   * 文件上传
     *
     * 此方法会自动将文件拆分为多个部分并上传到
     * 线程池并行,但默认情况下线程池只有一个
     *线。上传所有部分后,它会将它们合并为一个
     *文件。但是,如果任何一个部分无法上传,则整个上传将失败。
     * 可选地,可以使用检查点文件来跟踪
     * 上传并在失败后继续上传。上传后
     * 完成后,检查点文件将被删除。默认检查点
     * 文件被禁用。
     *
     * @param uploadFileRequest
     * 指定存储桶的 {@link UploadFileRequest} 实例
     * 名称、对象键、文件路径、零件尺寸 (>100K) 和螺纹
     * 计数(从 1 到 1000)和检查点文件。
     * @return 一个 {@link UploadFileRequest} 实例,其中新上传了
     * 文件的键、ETag、位置。
     * @throws Throwable
     */
    public UploadFileResult uploadFile(UploadFileRequest uploadFileRequest) throws Throwable;

    /**
    * 文件下载
     *
     * 与文件上传非常相似,此方法会将 OSS 对象拆分为
     * 部件,并由线程池并行下载它们,尽管默认情况下
     * 线程池只有一个线程。下载完所有部件后,然后
     * 该方法会将它们合并到一个文件中。但是,如果任何一个部分未能
     * 下载后,整个下载失败。(可选)检查点文件可以
     * 用于跟踪下载进度并恢复下载
     * 失败后。下载完成后,检查点文件
     * 将被删除。默认情况下,检查点文件处于禁用状态。
     *
     * @param downloadFileRequest
     * 一个 {@link DownloadFileRequest} 实例,指定
     * 存储桶名称、对象键、文件路径、部件大小 (>100K) 和
     * 线程数(从 1 到 1000)和检查点文件。还有它
     * 可以有 ETag 和 ModifiedSince 约束。
     * @return 一个 {@link DownloadFileResult} 实例,该实例具有
     * {@link ObjectMetadata} 信息。
     * @throws Throwable
     */
    public DownloadFileResult downloadFile(DownloadFileRequest downloadFileRequest) throws Throwable;

    /**
    * 创建直播频道。OSS可以管理RTMP入站
     * 通过“直播频道”进行流式传输。要将 RTMP 流存储到 OSS 中,这
     * 需要先调用方法才能创建“直播频道”。
     *
     * @param createLiveChannelRequest
     * 一个 {@link CreateLiveChannelRequest} 实例,用于指定
     * 目标存储桶名称、通道名称、通道状态(已启用或
     * 已禁用)、流媒体存储状态(如媒体文件名)、
     * 其.ts文件持续时间等。
     * @return 一个 {@link CreateLiveChannelResult} 实例,用于指定
     * 发布 URL 和播放 URL。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public CreateLiveChannelResult createLiveChannel(CreateLiveChannelRequest createLiveChannelRequest)
            throws OSSException, ClientException;

    /**
     * 设置直播频道状态。
     *
     * 可以通过设置直播频道的状态来禁用或启用直播频道。
     *
     * @param bucketName
     * 存储桶名称。
     * @param liveChannel
     * 直播频道名称。
     * @param status
     * 直播频道状态:“已启用”或“已禁用”。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void setLiveChannelStatus(String bucketName, String liveChannel, LiveChannelStatus status)
            throws OSSException, ClientException;

    /**
     * 设置直播频道状态。
     *
     * 可以通过设置直播频道的状态来禁用或启用直播频道。
     *
     * @param setLiveChannelRequest
     * 一个 {@link SetLiveChannelRequest} 实例,用于指定
     * 存储桶名称、频道名称和直播频道状态。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void setLiveChannelStatus(SetLiveChannelRequest setLiveChannelRequest) throws OSSException, ClientException;

    /**
    * 获取直播频道的配置。
     *
     * @param bucketName
     * 存储桶名称。
     * @param liveChannel
     * 直播频道名称。
     * @return 包含 Live 的 {@link LiveChannelInfo} 实例
     * 频道名称、描述、存储桶名称及其流
     * 存储信息。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public LiveChannelInfo getLiveChannelInfo(String bucketName, String liveChannel)
            throws OSSException, ClientException;

    /**
     * 获取直播频道的配置。
     *
     * @param liveChannelGenericRequest
     * 一个 {@link LiveChannelGenericRequest} 实例,指定
     * 存储桶名称和直播频道名称。
     * @return 包含 Live 的 {@link LiveChannelInfo} 实例
     * 频道名称、描述、存储桶名称及其流
     * 存储信息。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public LiveChannelInfo getLiveChannelInfo(LiveChannelGenericRequest liveChannelGenericRequest)
            throws OSSException, ClientException;

    /**
     * 获取直播频道的流媒体信息。
     *
     * @param bucketName
     * 存储桶名称。
     * @param liveChannel
     * 直播频道名称。
     * @return 一个 {@link LiveChannelStat} 实例,其中包含媒体的
     * 分辨率、帧速率和带宽。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public LiveChannelStat getLiveChannelStat(String bucketName, String liveChannel)
            throws OSSException, ClientException;

    /**
    * 获取直播频道的流媒体信息。
     *
     * @param liveChannelGenericRequest
     * 一个 {@link LiveChannelGenericRequest} 实例,指定
     * 存储桶名称和通道名称。
     * @return 一个 {@link LiveChannelStat} 实例,其中包含媒体的
     * 分辨率、帧速率和带宽。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public LiveChannelStat getLiveChannelStat(LiveChannelGenericRequest liveChannelGenericRequest)
            throws OSSException, ClientException;

    /**
     * 删除直播频道。
     *
     * @param bucketName
     * 存储桶名称。
     * @param liveChannel
     * 直播频道名称。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void deleteLiveChannel(String bucketName, String liveChannel) throws OSSException, ClientException;

    /**
    * 删除直播频道。
     *
     * 删除后,媒体文件仍保留。但是流媒体
     * 不适用于这些文件。
     *
     * @param liveChannelGenericRequest
     * 一个 {@link LiveChannelGenericRequest} 实例,指定
     *这
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void deleteLiveChannel(LiveChannelGenericRequest liveChannelGenericRequest)
            throws OSSException, ClientException;

    /**
    * 列出存储桶下的所有直播频道。
     *
     * @param bucketName
     * 存储桶名称。
     * @return 存储桶下所有 {@link LiveChannel} 实例的列表。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public List<LiveChannel> listLiveChannels(String bucketName) throws OSSException, ClientException;

    /**
     * 列出满足要求的存储桶下的所有直播频道
     * 由参数 listLiveChannelRequest 指定。
     *
     * @param listLiveChannelRequest
     * 指定存储桶的 {@link ListLiveChannelsRequest}
     * 名称及其对直播频道实例返回的要求,
     * 如前缀、标记、最大条目数返回。
     * @return 满足 {@link LiveChannel} 的实例列表
     *要求。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public LiveChannelListing listLiveChannels(ListLiveChannelsRequest listLiveChannelRequest)
            throws OSSException, ClientException;

    /**
     * 从指定的直播频道获取最近的 {@link LiveRecord} 条目。
     * OSS 为每个 Live 保存最近 10 个 LiveRecord(推送流记录)
     *渠道。
     *
     * @param bucketName
     * 存储桶名称。
     * @param liveChannel
     * 直播频道名称。
     * @return 最近(最多 10 个){@link LiveRecord} 用于直播频道。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public List<LiveRecord> getLiveChannelHistory(String bucketName, String liveChannel)
            throws OSSException, ClientException;

    /**
     * 从指定的直播频道获取最近的 {@link LiveRecord} 条目。
     * OSS 为每个 Live 保存最近 10 个 LiveRecord(推送流记录)
     *渠道。
     *
     * @param liveChannelGenericRequest
     * 一个 {@link LiveChannelGenericRequest} 实例,指定
     * 存储桶名称和直播频道名称。
     * @return 最近(最多 10 个){@link LiveRecord} 用于直播频道。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public List<LiveRecord> getLiveChannelHistory(LiveChannelGenericRequest liveChannelGenericRequest)
            throws OSSException, ClientException;

    /**
    * 为指定的 *.ts 文件生成 VOD 播放列表(*.m3u8 文件)
     * 直播频道下的时间范围。
     *
     * @param bucketName
     * 存储桶名称。
     * @param liveChannelName
     * 直播频道名称。
     * @param PlaylistName
     * 播放列表文件名,例如 (playlist.m3u8)。
     * @param startTime
     * 播放列表的开始时间(以纪元时间表示)(表示 *.ts 个文件
     *时间相同或晚于它)
     * @param endTime
     * 播放列表的结束时间(以纪元时间表示)(表示 *.ts 个文件
     *时间不晚于它)。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void generateVodPlaylist(String bucketName, String liveChannelName, String PlaylistName, long startTime,
                                    long endTime) throws OSSException, ClientException;

    /**
    * 为指定的 *.ts 文件生成 VOD 播放列表(*.m3u8 文件)
     * 直播频道下的时间范围。
     *
     * @param generateVodPlaylistRequest
     * 指定 {@link GenerateVodPlaylistRequest} 实例
     * 存储桶名称和直播频道名称。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void generateVodPlaylist(GenerateVodPlaylistRequest generateVodPlaylistRequest)
            throws OSSException, ClientException;

    /**
     * 在直播频道中生成 RTMP 推流地址。
     *
     * @param bucketName
     * 存储桶名称。
     * @param liveChannelName
     * 直播频道名称。
     * @param PlaylistName
     * 播放列表文件名,例如 playlist.m3u8。
     * @param expires
     * 以纪元时间表示的到期时间,例如 1459922563。
     * @return 直播频道的 RTMP 推送流地址。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public String generateRtmpUri(String bucketName, String liveChannelName, String PlaylistName, long expires)
            throws OSSException, ClientException;

    /**
     * 在直播频道中生成 RTMP 推流地址。
     *
     * @param generatePushflowUrlRequest
     * 一个 {@link GenerateRtmpUriRequest} 实例,用于指定
     * 存储桶名称和直播频道名称。
     * @return 直播频道的 RTMP 推送流地址。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public String generateRtmpUri(GenerateRtmpUriRequest generatePushflowUrlRequest)
            throws OSSException, ClientException;

    /**
     * 创建指向存储桶下目标文件的符号链接---这不是
     * 支持存档类存储桶。
     *
     * @param bucketName
     * 存储桶名称。
     * @param symlink
     * 符号链接名称。
     * @param target
     * 目标文件键。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void createSymlink(String bucketName, String symlink, String target) throws OSSException, ClientException;

    /**
     * 创建指向存储桶下目标文件的符号链接---这不是
     * 支持存档类存储桶。
     *
     * @param createSymlinkRequest
     * 一个 {@link CreateSymlinkRequest} 实例,用于指定
     * 存储桶名称、符号链接名称。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void createSymlink(CreateSymlinkRequest createSymlinkRequest) throws OSSException, ClientException;

    /**
     * 获取给定符号链接名称的符号链接信息。
     *
     * @param bucketName
     * 存储桶名称。
     * @param symlink
     * 符号链接名称。
     * @return 符号链接信息,包括目标文件名及其
     *元数据。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public OSSSymlink getSymlink(String bucketName, String symlink) throws OSSException, ClientException;

    /**
     * 获取给定符号链接名称的符号链接信息。
     *
     * @param genericRequest
     * 指定存储桶的 {@link GenericRequest} 实例
     * 名称和符号链接名称。
     * @return 符号链接信息,包括目标文件名及其
     *元数据。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public OSSSymlink getSymlink(GenericRequest genericRequest) throws OSSException, ClientException;

    /**
    * 在指定的图像文件上应用进程。
     * <p>
     * 支持的过程包括调整大小、旋转、裁剪、水印、格式、
     * UDF,定制样式等返回的 {@link GenericResult} 实例
     * 必须由调用者关闭才能通过调用释放连接
     * getResponse().getContent().close()。
     * </p>
     *
     * @param processObjectRequest
     * 一个 {@link ProcessObjectRequest} 实例,用于指定
     * 存储桶名称、对象键和进程(如
     *图像/调整大小,w_500)
     * @return 一个 {@link GenericResult} 实例,必须在
     * 调用方的使用。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public GenericResult processObject(ProcessObjectRequest processObjectRequest) throws OSSException, ClientException;

    /**
    * 创建 UDF
     *
     * @param createUdfRequest
     * 一个 {@link CreateUdfRequest} 实例。
     * @throws OSSException
     *             OSS Server side exception.
     * @throws ClientException
     *             OSS Client side exception.
     */
    public void createUdf(CreateUdfRequest createUdfRequest) throws OSSException, ClientException;

    public UdfInfo getUdfInfo(UdfGenericRequest genericRequest) throws OSSException, ClientException;

    public List<UdfInfo> listUdfs() throws OSSException, ClientException;

    public void deleteUdf(UdfGenericRequest genericRequest) throws OSSException, ClientException;

    public void uploadUdfImage(UploadUdfImageRequest uploadUdfImageRequest) throws OSSException, ClientException;

    public List<UdfImageInfo> getUdfImageInfo(UdfGenericRequest genericRequest) throws OSSException, ClientException;

    public void deleteUdfImage(UdfGenericRequest genericRequest) throws OSSException, ClientException;

    public void createUdfApplication(CreateUdfApplicationRequest createUdfApplicationRequest)
            throws OSSException, ClientException;

    public UdfApplicationInfo getUdfApplicationInfo(UdfGenericRequest genericRequest)
            throws OSSException, ClientException;

    public List<UdfApplicationInfo> listUdfApplications() throws OSSException, ClientException;

    public void deleteUdfApplication(UdfGenericRequest genericRequest) throws OSSException, ClientException;

    public void upgradeUdfApplication(UpgradeUdfApplicationRequest upgradeUdfApplicationRequest)
            throws OSSException, ClientException;

    public void resizeUdfApplication(ResizeUdfApplicationRequest resizeUdfApplicationRequest)
            throws OSSException, ClientException;

    public UdfApplicationLog getUdfApplicationLog(GetUdfApplicationLogRequest getUdfApplicationLogRequest)
            throws OSSException, ClientException;

}

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

财大彭于晏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值