华为云中对象存储服务软件开发工具包(OBS SDK) C语言介绍

这篇具有很好参考价值的文章主要介绍了华为云中对象存储服务软件开发工具包(OBS SDK) C语言介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

      华为云的OBS介绍:摘自华为云官网:https://support.huaweicloud.com/obs/index.html

      华为云的对象存储服务(Object Storage Service,OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。
      OBS系统和单个桶都没有总数据容量和对象/文件数量的限制,为用户提供了超大存储容量的能力,适合存放任意类型的文件,适合普通用户、网站、企业和开发者使用。OBS是一项面向Internet访问的服务,提供了基于HTTP/HTTPS协议的Web服务接口,用户可以随时随地连接到Internet,通过OBS管理控制台或各种OBS工具访问和管理存储在OBS中的数据。此外,OBS支持SDK和OBS API接口,可使用户方便管理自己存储在OBS上的数据,以及开发多种类型的上层业务应用。

      OBS的基本组成是桶和对象:
      1.桶(Bucket)是OBS中存储对象的容器。对象存储提供了基于桶和对象的扁平化存储方式,桶中的所有对象都处于同一逻辑层级,去除了文件系统中的多层级树形目录结构。用户在互联网上通过桶的访问域名来定位桶。
      每个桶都有自己的存储类别、访问权限、所属区域等属性,用户可以在不同区域创建不同存储类别和访问权限的桶,并配置更多高级属性来满足不同场景的存储诉求。
      对象存储服务设置有四类桶存储类别,分别为:标准存储、低频访问存储、归档存储、深度归档存储(受限公测中),从而满足客户业务对存储性能、成本的不同诉求。创建桶时可以指定桶的存储类别,桶的存储类别可以修改。
      在OBS中,桶名必须是全局唯一的且不能修改,即用户创建的桶不能与自己已创建的其他桶名称相同,也不能与同帐号、其他帐号及帐号下的所有IAM(Identity and Access Management, 统一身份认证服务)用户创建的桶名称相同。桶所属的区域在创建后也不能修改。每个桶在创建时都会生成默认的桶ACL(Access Control List,访问控制列表),桶ACL的每项包含了对被授权用户授予什么样的权限,如读取权限、写入权限等。用户只有对桶有相应的权限,才可以对桶进行操作,如创建、删除、显示、设置桶ACL等。
      一个帐号及帐号下的所有IAM用户可创建的桶+并行文件系统的上限为100个。每个桶中存放的对象的数量和大小总和没有限制,用户不需要考虑数据的可扩展性。
      由于OBS是基于REST风格HTTP和HTTPS协议的服务,你可以通过URL(Uniform Resource Locator)来定位资源。
      2.对象(Object)是OBS中数据存储的基本单位,一个对象实际是一个文件的数据与其相关属性信息(元数据)的集合体用户上传至OBS的数据都以对象的形式保存在桶中
      对象包括了Key,Metadata,Data三部分:
      (1).Key:键值,即对象的名称,为经过UTF-8编码的长度大于0且不超过1024的字符序列。一个桶里的每个对象必须拥有唯一的对象键值
      (2).Metadata:元数据,即对象的描述信息,包括系统元数据和用户元数据,这些元数据以键值对(Key-Value)的形式被上传到OBS中。
      系统元数据由OBS自动产生,在处理对象数据时使用,包括Date,Content-length,Last-modify,ETag等。
      用户元数据由用户在上传对象时指定,是用户自定义的对象描述信息。
      (3).Data:数据,即文件的数据内容。
      通常,我们将对象等同于文件来进行管理,但是由于OBS是一种对象存储服务,并没有文件系统中的文件和文件夹概念。为了使用户更方便进行管理数据,OBS提供了一种方式模拟文件夹。通过在对象的名称中增加"/",例如"test/123.jpg"。此时,"test"就被模拟成了一个文夹,"123.jpg"则模拟成"test"文件夹下的文件名了,而实际上,对象名称(Key)仍然是"test/123.jpg"。
      上传对象时,可以指定对象的存储类别,若不指定,默认与桶的存储类别一致。上传后,对象的存储类别可以修改。
      在OBS管理控制台和客户端上,用户均可直接使用文件夹的功能,符合文件系统下的操作习惯。

      对象存储服务提供了多种资源管理工具:用户访问OBS的方式有多种,包括OBS控制台、OBS客户端(OBS Browser+)、OBS命令行工具(obsutil)、API、SDK,无论访问方式封装成何种形式,其本质都是通过OBS提供的REST风格的API接口进行请求。
      1.管理控制台:是网页形式的。通过管理控制台,你可以使用直观的界面进行相应的操作。
      2.OBS Browser+:是一款运行在Windows系统上的对象存储服务管理工具,OBS Browser+的图形化界面可以非常方便地让用户在本地对OBS进行管理。
      3.obsutil:是一款用于访问管理OBS的命令行工具,你可以使用该工具对OBS进行常用的配置管理操作。对于熟悉命令行程序的用户,obsutil是执行批量处理、自动化任务的不错选择。obsutil适用于Windows、Linux和macOS三大主流的操作系统
      4.obsfs:是OBS提供的一款基于FUSE的文件系统工具,主要用于将并行文件系统挂载至Linux系统,让用户能够在本地像操作文件系统一样直接使用OBS海量的存储空间。
      5.SDK:是对OBS服务提供的REST API进行的封装,以简化用户的开发工作。用户直接调用SDK提供的接口函数即可实现使用OBS业务能力的目的。
      6.API:OBS提供REST形式的访问接口,使用户能够非常容易地从Web应用中访问OBS。用户可以通过本文档提供的简单的REST接口,在任何时间、任何地点、任何互联网设备上进行上传和下载数据。

      OBS的接口既支持认证请求,也支持匿名请求。匿名请求通常仅用于需要公开访问的场景,例如静态网站托管。除此之外,绝大多数场景是需要经过认证的请求才可以访问成功。经过认证的请求总是需要包含一个签名值,该签名值以请求者的访问密钥(AK/SK)作为加密因子,结合请求体携带的特定信息计算而成。通过访问密钥(AK/SK)认证方式进行认证鉴权,即使用Access Key ID(AK)/Secret Access Key(SK)加密的方法来验证某个请求发送者身份
      OBS支持如下请求方式
      1.通过永久访问密钥访问OBS:用户可以在"我的凭证"页面创建永久访问密钥(AK/SK)
      2.通过临时访问密钥访问OBS: OBS可以通过IAM获取临时访问密钥(临时AK,SK和securitytoken)进行临时授权访问。临时访问密钥主要用于授权第三方临时访问OBS服务。
      3.通过临时URL访问OBS:对桶或对象进行创建桶、上传对象和下载对象等操作。临时URL是由文件的访问域名和临时鉴权信息组成。
      4.通过IAM委托访问OBS:IAM委托为统一身份认证服务IAM的功能特性,OBS在部分使用场景中(如CDN私有桶回源、跨区域复制),需要使用IAM委托功能,授予其他用户或云服务OBS的访问权限,替委托方管理OBS资源,实现安全高效的代维工作。

      IAM用户若希望使用AK/SK访问OBS,必须要帐号为其开启"编程访问".

      OBS权限控制:默认情况下,OBS的资源(桶和对象)都是私有的,只有资源拥有者可以访问OBS资源,其他用户在未经授权的情况下均无OBS访问权限。OBS的权限控制是指通过编写访问策略向其他帐号或者IAM用户授予资源的控制权限。例如,你拥有一个桶,你可以授权一个其他的IAM用户上传对象到你的桶中;你也可以将桶开放给非公有云用户访问,即桶作为一个公共资源,能被互联网上任何人访问。OBS提供多种方式将OBS资源权限授予给他人,资源拥有者可以根据业务需求制定不同的权限控制方案,从而确保数据安全。
      OBS提供多种权限控制方式,包括IAM权限、桶策略、对象ACL、桶ACL。

      创建桶:一个帐号及帐号下的所有IAM用户一共可创建100个桶。考虑到桶名会作为访问域名的一部分,需要参与域名解析,因此桶名需要满足DNS域名规范。长度范围为3到63个字符,支持小写字母、数字、中划线(-)、英文句号(.)。

      首次登入华为云,需要先注册一个账号,然后实名认证,为了测试,可花费1元购买包月套餐,40G资源包

      对象存储服务软件开发工具包(OBS SDK, Object Storage Service Software Development Kit)是对OBS服务提供的REST API进行的封装,以简化用户的开发工作。用户直接调用OBS SDK提供的接口函数即可实现使用OBS服务业务能力的目的。
      OBS SDK支持的语言包括:Java、Python、C、Go、.Net、Android、iOS等,这里介绍下C的使用。

      Ubuntu 18.04上编译SDK
      1.OBS C SDK下载:从 https://github.com/huaweicloud/huaweicloud-sdk-c-obs clone项目,然后切换到tag v3.23.3.2,即最新发布版本,执行:git checkout v3.23.3.2;
      2.编译:
      (1).为source/eSDK_OBS_API/eSDK_OBS_API_C++/build.sh添加执行权限:

sudo chmod +x source/eSDK_OBS_API/eSDK_OBS_API_C++/build.sh

      (2).将终端定位到source/eSDK_OBS_API/eSDK_OBS_API_C++目录下,执行:

./build.sh obs_sdk_api_c++ release

      执行完上述命令后会生成obs_sdk_api_c++.tgz,此包内包含了由源码生成的eSDKOBS动态库,其它动态库是从仓库的其它目录中直接拷贝过来的。eSDKOBS动态库的源码在source/eSDK_OBS_API/eSDK_OBS_API_C++/src目录下。
      也可以直接使用clone后存在的现成库:release/huaweicloud-obs-sdk-c-linux_3.23.3.2.tgz。

      解压缩obs_sdk_api_c++.tgz,此包内包含demo、include、lib三个目录,其中demo中为测试代码,将终端定位到demo目录下,执行make即可生成demo和object_test可执行文件。

      使用OBS客户端进行接口调用操作完成后,没有返回异常,则表明接口调用成功;若返回异常,则说明操作失败。修改demo.c函数test_create_bucket,将里面的create_bucket函数的第三个参数由NULL调整为具体的终端节点,否则在指定非默认区域时创建桶会失败

      执行demo可执行文件会在与demo目录同一目录下生成logs目录,此目录下的eSDK-OBS-API-Linux-C.run.log文件记录了每次执行命令后的信息,若操作失败,可从此文件中获得更多错误信息。

      修改demo.c,从控制台下载AK/SK,将其拷贝给ACCESS_KEY_ID和SECRET_ACCESS_KEY,指定HOST_NAME,注意要同步修改location_constraint,然后指定桶名,注释掉main中的其它接口只保留test_create_bucket和test_head_bucket,重新make,然后执行demo,结果如下图所示:

华为云中对象存储服务软件开发工具包(OBS SDK) C语言介绍,Cloud Computing,华为云

     实际使用中会将相关功能都封装在一个类中提供简单接口供调用。文章来源地址https://www.toymoban.com/news/detail-703603.html

到了这里,关于华为云中对象存储服务软件开发工具包(OBS SDK) C语言介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 上门服务系统|上门服务软件开发技术和功能解析

    随着科技的不断发展,上门服务系统成为了许多企业和组织提供服务的重要方式之一。从美容到家庭维修,从食品外送到医疗保健,上门服务系统的功能一直在不断创新和扩展。本文将详细介绍上门服务系统的开发功能,为您提供一些优化服务体验的建议。    一、在线预约

    2024年01月24日
    浏览(54)
  • 🔥🔥微服务架构:软件开发的革命还是短暂潮流?

    从今天开始,我们将深入探讨服务网格(Service Mesh)这个领域的知识。尽管在我们的工作中可能还没有广泛应用,但服务网格确实是一种趋势。如果你还没有听说过这个概念,我希望你能够跟随我的步伐,一起了解这个特殊而重要的技术。首先,我将为大家介绍微服务的发展

    2024年02月05日
    浏览(61)
  • 软件开发全文档归档,开发、管理、实施、运维、服务巡检、信息安全、安全运维

    在当今高度信息化的时代,软件开发已成为推动社会进步和发展的重要力量。软件开发过程中,文件支撑作为关键的一环,对于保障项目的顺利进行和产品的质量具有不可替代的作用。本文将探讨软件开发所需的主要文件及其作用。 一、引言 软件开发是一项复杂而系统的工

    2024年02月06日
    浏览(52)
  • 低代码与微服务:重塑软件开发的未来

    在软件开发的浩瀚宇宙中,新的技术和理念不断涌现,为开发者提供了更为广阔的创新空间。其中,“低代码”与“微服务”无疑是两颗璀璨的明星,它们正在改变着传统的软件开发模式,为开发者带来了更高效、更灵活的开发体验。 低代码开发平台(Low-Code Development Platf

    2024年03月13日
    浏览(63)
  • 简单FTP客户端软件开发——搭建FTP服务器

    计网课程设计的要求是: 1) 该FTP客户端程序具有以下基本功能: 2) 开发美观易用的图形界面 FTP使用客户服务器方式,因为开发的是客户端,所以需要一个FTP服务器,客户端进行连接访问,进行文件操作。 前面我们已经安装好了Linux虚拟机,在Linux搭建FTP服务器原参考博客

    2024年02月03日
    浏览(68)
  • 微服务:解放软件开发的神器,引领企业级应用的未来

    目录 1、什么是微服务? 1.1 微服务的定义 1.2 微服务架构的特点 2、微服务的优势 2.1 灵活性和可扩展性 2.2 模块化开发和部署 2.3 高可用性和容错性 2.4 技术栈的多样性 3、微服务的挑战 3.1 分布式系统的复杂性 3.2 服务之间的通信和协调 3.3 数据一致性和事务管理 3.4 性能监控

    2024年02月22日
    浏览(53)
  • PHP/MySQL开发本地服务器软件 MAMP Pro for Mac

    MAMP Pro是一款专为Mac用户设计的全功能本地服务器软件,可以将电脑变成一个完整的Web开发环境。无论个人开发者、网站管理员还是团队协作,MAMP Pro都提供了强大的工具和便捷的管理方式,能够更加高效地构建和测试网站。 MAMP Pro的基本功能包括集成AMP环境,即Apache、MySQL和

    2024年02月06日
    浏览(48)
  • WebSphere是IBM开发的一套企业级应用服务器软件,提供了强大的安全功能,以保护企业应用程序的安全性和机密性

    WebSphere是IBM开发的一套企业级应用服务器软件,提供了强大的安全功能,以保护企业应用程序的安全性和机密性。下面是WebSphere提供的一些主要安全功能的介绍: 身份验证(Authentication):WebSphere支持多种身份验证机制,包括基于用户名和密码的认证、基于数字证书的认证、

    2024年03月11日
    浏览(63)
  • 【开发环境】(阿里云分布式文件系统)对象存储OSS 服务配置

    目录 一、开通 “对象存储 OSS” 服务: 二、创建 Bucket 容器: 1.创建一个Bucket: 三、使用 OSS 对象存储: 四、使用 SDK 访问 OSS: 1.安装使用 OSS SDK: 2.SDK 配置和测试:         进入阿里云官网: https://www.aliyun.com/ https://www.aliyun.com/         进入到 OSS 对象存储的管理平台

    2024年02月02日
    浏览(66)
  • 测试软件开发---软件缺陷章

    软件缺陷 软件出现缺陷一般是因为开发的流程规划不准确,需求不明确,或需求变更/在开发者开发的时候无法清晰的理解需求出现不同程度的偏差/客户方频繁的更改、更新需求也会影响到软件的质量 软件结构复杂、编码误差/错误、项目期限过短、项目中插入新的技术 处理

    2024年02月02日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包