baidu云存储java sdk源码阅读之实体分析

        接下来我们来看bcs里面的实体对象。在介绍这个之前,我们首先来看一下bcs api都可以干什么。从官方文档我们可以看到,有三类api,分别是针对bucket的,针对object的,针对acl操作类的。

  •   云存储Bucket可以看成是命名空间,开发者上传的任何数据必须是属于某个Bucket。上传任何数据之前请先确认是否已经创建Bucket,有关Bucket命名限制请参考约束与限制创建Bucket,分别有三个接口。分别为创建,删除,List Bucket。
  1. Put Bucket      创建bucket,传递bucket名称和以及相应的acl信息(不是必须的)
  2. List Bucket     列举bucket下面的所有的bucket,显示bucket名称和创建时间
  3. Delete Bucket  直接删除
  • 百度云存储object可以支持文本,多媒体,二进制等任何类型的数据,

    操作类型分为创建,删除,copy,list object等部分,接口如下:

  1. Put Object  上传一个文件,可以传递一些上传文件的源数据

  2. Copy Object  将一个文件从一个bucket复制到另外一个bucket下面,可以根据参数决定是否更改元数据

  3. Put Superfile 上传大文件,超大文件,上传的时候要进行分片,最后上传一个superfile对象


  4. Get Object  下载一个文件,根据一些原数据可以获取相应的文件

  5. Head Object  获取一个文件的元数据

  6. List Object 获取一个bucket下面所有的文件

  7. Delete Object 删除一个文件

 

  • 百度云存储通过ACL实现资源的权限认证,开发者可以通过设置ACL来实现复杂的资源管理。

  1. Put_Acl  设置bucket或者文件的acl

  2. Get_Acl  获取bucket或者文件的acl



 

    我们简单的来看一下作者这些实体类的意图:

  •    BCSClientException和BCSServiceException这两个类,从名称来看就是异常类,它是继承RuntimeException,所以从这个定义来看,bcs的异常都是可以不用捕捉的。
  • BucketSummary 是对一个bucket的描述信息,里面包含名称,创建时间,已经总大小和已经使用的大小等,但是初步来看这个类有点贫血,这个地方其实应该返回可以使用大小等一些导出属性的
  • DownloadObject 这个类代表一个下载的文件,包含文件名称,所在的bucket,对象的元数据objectMetadata,已经数据inputstream。
  • ObjectListing 这个代表文件list后的一个结果对象,如果说的通俗一点有点像list一个文件目录,它包含这个目录的一个元数据和里面得文件,元数据有所在bucket,对象的总个数,prefix这个属性比较怪,从官方文档并没有找到相应的解释,从官方给的返回的json数据里面也没有找到,start和list其实就是这个文件夹里面对象的起始的下标,limit是记录总个数,这个其实是给分页用的,相信大家都理解了,就不多讲了。
  • ObjectMetadata 这个代表一个文件的原数据,里面包含两种类型的原数据,一个是userMetaData,这个最多支持100个,下一个是文件的元数据,其实是一些http的参数,关于这些参数,我在发起请求的地方进行讲解
  • ObjectSummary 这个对象是从类图上看是专门为ObjectListing服务的,代表一个文件的摘要信息,包括名称、大小、最后修改时间、版本、是否是超大文件、父文件路径、是否是一个路径一下文件的元数据信息
  • Resource 这个包括一个bucket和object,这个相当简单
  • SuperfileSubObject 代表是一个超大文件的子部分,其中包含bucket、文件名称、以及起到校验用途的etag
  • X_BS_ACL 这个代表的是一个acl的枚举常量
  • Empty从类名来看就是空的意思,Pair也是一个辅助对象,这两个对象在实际的应用场景里面再进行讲解吧

       好了,实体对象就先讲解到这个地方,下面将进行详细讲解请求的发起。

猜你喜欢

转载自asialee.iteye.com/blog/1839683