/**
* 授权给 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;
}
阿里云oss使用文档,中文版
最新推荐文章于 2025-03-09 01:11:07 发布