`

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也是一个辅助对象,这两个对象在实际的应用场景里面再进行讲解吧

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

 

  • 大小: 45.7 KB
分享到:
评论

相关推荐

    云存储java sdk源代码.zip

    本话题主要围绕“云存储Java SDK源代码”展开,我们将探讨云存储的基本概念、Java SDK的作用、如何使用Java SDK进行云存储开发,以及如何理解和分析提供的源代码。 首先,云存储是指将数据存储在远程服务器上,用户...

    Java魔方游戏源代码分析.rar

    Java魔方游戏源代码分析是一个非常适合Java初学者和游戏开发者深入理解编程原理和游戏机制的资源。这个项目是一个非Android的手机客户端游戏,虽然它不直接运行在Android平台上,但学习其源代码对于想要转行到...

    JAVA上百实例源码以及开源项目源代码

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    阿里云javasdk源码-wiki:维基

    sdk源码 CDH集成Atlas 参考文档:​ 官方地址:​ 官方快速入门地址:​ 开发环境地址: admin/admin [TOC] 1.Atlas简介 Atlas是什么? Apache Atlas是Hadoop社区为解决Hadoop生态系统的元数据治理问题而产生的开源...

    java毕业设计之专利分析(android+小程序)源码.zip

    本项目是一个基于Java技术栈的毕业设计,主题为“专利分析系统”,同时支持Android移动应用和小程序的交互。这个设计旨在提升对专利信息的检索、分析和管理能力,为用户提供便捷的数据服务。以下是对该项目涉及的...

    基于Java开发的在线直播平台源码.zip

    "基于Java开发的在线直播平台源码.zip" 暗示这是一个包含Java编程语言开发的在线直播平台的源代码压缩包。它可能是由开发者分享或出售的,用于教学、研究或者作为其他开发者的基础来构建自己的直播应用。 【描述...

    java官方源码-clouddirectory-sdk-java:CloudDirectoryJavaSDK的官方源代码存储库

    总的来说,CloudDirectory-sdk-java官方源代码提供了全面的Java接口,帮助开发者轻松地在AWS环境中构建和管理复杂的目录结构。通过深入学习和理解这个SDK,开发者可以构建高效、安全的云原生应用程序,充分利用AWS ...

    Java项目-基于SSM的java源码 仿360buy京东商城源码 京东项目源代码.zip

    本项目是一个基于SSM(Spring、SpringMVC、MyBatis)框架的Java源码实现,仿照360buy京东商城系统构建的电子商务平台。SSM是Java Web开发中常用的三大组件,它们分别负责应用的依赖管理、前端控制器和持久层操作。这...

    Cognos SDK

    Cognos 8 SDK 提供了管理内容存储库的方法,这包括如何组织、检索和处理存储在 Cognos 8 系统中的各种内容(如报表、数据源等)。内容存储结构遵循一定的逻辑和物理布局,了解这些布局对于高效地管理内容至关重要。 ...

    手机开发源代码

    总之,这个"手机开发源代码"的压缩包为你提供了一个实践性的学习机会,通过阅读和理解这些代码,你可以深入学习Java在Android开发中的应用,理解新闻发布系统的架构设计,以及如何通过编程实现各种功能。这将对你的...

    生鲜O2O源码

    开发者使用Java或Kotlin等语言,利用Android SDK进行开发,以确保应用在各种Android设备上都能流畅运行。UI设计需符合用户习惯,保证操作简单易懂,同时提供良好的用户体验。 3. **服务端**:服务端是整个系统的...

    Java 开发-----学生信息管理(文档+视频+源码).rar

    源码是学习的重要资源,通过阅读和分析源代码,我们可以学习到具体的编程技巧和最佳实践。例如,观察如何使用Java集合框架存储和操作数据,如何实现异常处理,以及如何优化代码性能。 此外,还可以从源码中学习到...

    网络商城源码JAVA程序参考学习zip

    【网络商城源码JAVA程序参考学习zip】是一个用于学习和参考的Java开发的网络商城源代码包。这个项目的核心是基于Java技术栈构建的,它提供了完整的前后端交互逻辑,数据库设计以及业务处理功能,是Java Web开发初学...

    java毕业设计之校园二手交易系统源码.zip

    总的来说,这个Java毕业设计涵盖了软件开发的全生命周期,包括需求分析、系统设计、编码实现、测试和部署。它涉及到的技术栈包括但不限于Java SE、Java EE、数据库设计、前端开发、服务器配置等,对于提升学生的综合...

    安卓T9实体按键中文输入法

    6. **gen** 文件夹:自动生成的Java源代码,可能是由APT(Annotation Processing Tool)处理注解后的产物。 7. **.settings** 文件夹:Eclipse IDE的工作空间设置,包含了项目特定的构建路径和配置信息。 8. **src**...

    长春欣想电子商城 JAVA 项目 源码

    长春欣想电子商城JAVA项目源码是一个典型的电子商务平台开发实例,主要使用JAVA语言进行编程,旨在提供一个完整的线上购物体验。这个项目包含了从后端服务到前端展示的全套代码,涵盖了用户管理、商品浏览、购物车、...

    TM00658-Java物业小程序源码,物业管理系统源码+安装视频+文档.rar

    这个源码包包含了完整的物业管理系统的源代码,附带了安装视频和详细文档,确保用户能够顺利地部署和使用该系统。 在Java开发中,物业管理系统源码通常会涉及到以下几个关键技术点: 1. **框架选择**:Java开发中...

    源代码 基于Android的课程表的管理的设计与实现_java_android_

    在本项目中,“源代码 基于Android的课程表的管理的设计与实现”是一个以Java编程语言构建的Android应用程序,旨在提供一个便捷的课程表管理解决方案。该项目深入探讨了如何利用Android SDK和Java编程技术来开发用户...

    Java项目源码演示第35期功能华美版在线点餐系统.zip

    总的来说,"Java项目源码演示第35期功能华美版在线点餐系统"是一个涵盖了Web开发多个方面的实践项目,适合学习和提升Java开发技能,特别是对于那些对Web应用开发感兴趣的学生或开发者。通过分析和学习这个项目,不仅...

Global site tag (gtag.js) - Google Analytics