写点什么

华为云 OBS 助力物联网数据转发与存储

  • 2024-04-15
    广东
  • 本文字数:5473 字

    阅读完需:约 18 分钟

华为云OBS助力物联网数据转发与存储

本文分享自华为云社区《解锁物联网数据管理的新境界:华为云OBS助力数据转发与存储【零代码零硬件玩转华为云IoT】》,作者: Y-StarryDreamer。

1. 背景介绍


物联网(IoT)技术的快速发展正在推动着智能化社会的到来。在这个数字化时代,随着物联网设备数量的不断增加和数据规模的快速增长,如何有效地存储和管理这些海量数据成为了一个重要的挑战。华为云作为领先的云计算服务提供商,积极响应这一挑战,为用户提供了丰富的物联网解决方案,其中包括对象存储服务(OBS)。


OBS 作为一种高度可扩展、安全可靠的云端存储服务,为用户提供了灵活、高效的数据存储解决方案。它采用分布式存储架构,能够轻松应对海量数据的存储需求,并提供了多种数据保护和安全控制功能,确保用户的数据安全可靠。


在物联网应用中,数据的长期存储和管理是至关重要的。传统的数据存储方式往往需要用户自行搭建和维护服务器,成本高昂且管理复杂。而将数据转发至 OBS,则成为了一种更加便捷和经济的解决方案。通过将数据存储在 OBS 中,用户可以充分利用其高可靠性和低成本的优势,无需担心数据丢失或存储空间不足的问题。同时,OBS 还提供了丰富的数据管理和分析功能,帮助用户更好地理解和利用数据,为业务决策提供支持。


在本文中,我们将深入探讨如何将华为云设备上报的数据转发至 OBS 进行长期存储。首先,我们将介绍如何创建 OBS 桶,详细讨论桶的创建过程和相关配置选项。接着,我们将重点介绍如何配置设备接入服务,包括创建数据转发规则、设置转发目标等操作步骤。最后,我们将通过实际操作演示如何验证数据转发的有效性,以及如何利用 OBS 的管理工具对存储的数据进行查看和管理。


通过本文的阅读,读者将全面了解华为云物联网解决方案中 OBS 的应用场景和优势,掌握将设备数据转发至 OBS 进行长期存储的操作方法,从而为物联网应用的开发和部署提供技术支持和指导。

2. 对象存储服务(OBS)简介



对象存储服务(OBS)是华为云提供的一种高度可靠、安全可靠的云端存储服务。OBS 采用分布式架构,具有高可用性、高可靠性和高扩展性的特点。用户可以通过简单的 API 接口或管理控制台,轻松地上传、下载和管理存储在 OBS 中的数据。


OBS 的主要特点包括:


  1. 高可靠性和可用性:OBS 采用多副本存储和智能容灾机制,保障数据的安全和可靠性。无论是硬件故障、网络故障还是其他异常情况,OBS 都能够保证数据的持久性和可用性,确保用户数据随时可访问。

  2. 强大的数据管理功能:OBS 提供丰富的数据管理功能,包括数据分类、生命周期管理、数据迁移等。用户可以根据自己的业务需求,灵活地管理和组织存储在 OBS 中的数据,从而提高数据的价值和利用效率。

  3. 灵活的存储桶管理:用户可以根据自己的需求创建和管理多个存储桶,并对存储桶进行权限控制。每个存储桶都具有独立的命名空间和访问控制策略,用户可以根据实际情况对存储桶进行配置和管理,确保数据的安全性和隐私性。


OBS 在华为云生态系统中扮演着重要的角色,为用户提供了高效、可靠的数据存储解决方案,广泛应用于各种场景,包括数据备份、归档、多媒体存储等。无论是个人用户、企业用户还是开发者,都可以借助 OBS 轻松实现数据的存储和管理,从而更好地支持业务发展和创新应用。

3. 创建 OBS 桶



在将设备上报的数据转发至 OBS 之前,首先需要创建一个 OBS 桶。OBS 桶是存储数据的基本单元,用户可以根据自己的需求创建多个桶,并对每个桶进行配置和管理。


创建 OBS 桶的步骤:


登录华为云官方网站,访问对象存储服务


打开您的浏览器,前往华为云官方网站,并登录您的账号。在控制台中找到并点击“对象存储服务”链接,进入 OBS 服务页面。


进入对象存储服务管理控制台


在 OBS 服务页面,您将看到一个“进入控制台”的按钮。点击该按钮,您将被导航至对象存储服务的管理控制台页面。


创建新的 OBS 桶


在管理控制台页面的右上角,您会找到一个“创建桶”的按钮。点击该按钮,系统将引导您进入创建 OBS 桶的界面。


填写桶的配置信息


在创建桶的界面,您需要填写一些关于新桶的配置信息,包括桶的名称、所属区域、存储类型等。根据您的需求和应用场景,选择适当的配置选项。


确认并创建


填写完桶的配置信息后,您可以预览您所创建桶的配置。确认无误后,点击“立即创建”按钮,系统将开始创建新的 OBS 桶。


等待创建完成


创建桶的过程可能需要一些时间,取决于您所选择的配置和当前的系统负载情况。请耐心等待,直到系统提示桶创建完成。

4. 配置设备接入服务


在本文中,我们将详细介绍如何使用 Python 代码将设备上报的数据转发至华为云对象存储服务(OBS),并进行长期存储。我们将结合示例代码和详细解释,帮助读者全面了解部署流程和代码实现细节。

* 配置华为云对象存储服务(OBS)


首先,我们需要在华为云平台上创建一个对象存储服务(OBS)桶,用于存储设备上报的数据。在华为云控制台中,进入对象存储服务管理页面,按照以下步骤创建 OBS 桶:


  1. 单击“进入控制台”进入对象存储服务管理控制台。

  2. 单击页面右上角的“创建桶”按钮。

  3. 根据需求选择桶的规格和配置项,然后单击“立即创建”按钮,即可创建一个新的 OBS 桶。

* 编写 Python 部署代码


接下来,我们将编写 Python 代码,实现设备数据转发至 OBS 桶的功能。以下是详细的代码解释和部署流程:


import loggingfrom obs import ObsClient
# 配置华为云OBS参数access_key_id = 'your_access_key_id'secret_access_key = 'your_secret_access_key'server = 'your_obs_server' # OBS服务的地址,例如:obs.cn-north-4.myhuaweicloud.com
# 配置设备接入信息device_id = 'your_device_id'device_secret = 'your_device_secret'
# 配置数据转发规则topic = 'your_topic' # 设备上报数据的主题obs_bucket = 'your_obs_bucket' # OBS桶名称
# 配置日志logging.basicConfig(level=logging.INFO)
# 创建OBS客户端obs_client = ObsClient(access_key_id, secret_access_key, server)
# 创建设备接入服务,模拟设备上报数据def report_data_to_obs(data): try: # 上报数据至OBS response = obs_client.putContent(obs_bucket, topic, data) if response.status < 300: logging.info("Data reported to OBS successfully.") else: logging.error("Failed to report data to OBS. Status code: %d" % response.status) except Exception as e: logging.error("An error occurred while reporting data to OBS: %s" % str(e))
# 模拟设备上报数据def simulate_device_data(): data = {'temperature': 25, 'humidity': 60, 'pressure': 1013} # 模拟设备上报的数据 report_data_to_obs(data)
if __name__ == "__main__": simulate_device_data()
复制代码


在以上代码中:


  • 我们使用 obs 包来与华为云的对象存储服务(OBS)进行交互,确保您已安装该包。

  • 请替换代码中的 access_key_idsecret_access_key 和 server 参数为您的华为云 OBS 账户的具体信息。

  • report_data_to_obs 函数用于将设备上报的数据上载到指定的 OBS 桶中。

  • simulate_device_data 函数用于模拟设备上报数据,您可以根据实际情况更改数据内容。

* 部署和运行代码


在配置好代码中的参数并保存后,您可以将该代码部署到您的服务器或本地环境中,并运行该 Python 脚本。运行后,您将看到日志中打印出成功或失败的信息,以及数据是否成功上载到 OBS 桶中。


通过以上步骤,您就成功地将设备上报的数据转发至华为云对象存储服务,并实现了数据的长期存储。这种解决方案能够帮助您管理和分析大量的物联网数据,并为您的应用提供可靠的数据支持。我们可以清楚地了解整个代码的结构和各部分的功能。该代码实现了将设备上报的数据转发至华为云对象存储服务的功能,通过合理的配置和调用,可以在物联网应用中实现数据的可靠存储和管理。

5. 验证操作


完成数据转发规则的配置和激活后,接下来需要验证数据转发是否成功,确保设备上报的数据能够正确地存储到指定的 OBS 桶中。

验证数据转发的步骤:


使用真实设备或模拟器上报数据


首先,您可以通过真实设备或模拟器模拟设备上报数据,以验证数据转发功能是否正常工作。确保设备能够正常地连接到设备接入服务,并成功上报数据。您可以使用设备的唯一标识符(如设备 ID)来确保数据被正确地标识和处理。


查询上报数据


登录到华为云的 OBS 管理控制台,在控制台中选择相应的 OBS 桶,以查看存储桶中的对象列表或对象详情。您应该能够在桶中看到与设备上报的数据相对应的对象。确认对象列表中包含了您期望存储的数据对象,并且对象的内容与设备上报的数据一致。


通过以上步骤,您可以验证数据转发功能是否正常,确保设备上报的数据能够顺利地存储到指定的 OBS 桶中。如果您能够在 OBS 桶中找到并确认了设备上报的数据,那么数据转发功能已经成功配置并且工作正常。


以下是使用 Python SDK 验证数据转发的示例代码:


from obs import ObsClient
# 初始化ObsClientobs_client = ObsClient( access_key_id='your_access_key_id', secret_access_key='your_secret_access_key', server='your_obs_endpoint' # OBS服务的endpoint,如obs.cn-north-1.myhuaweicloud.com)
# 查询指定桶中的对象列表def list_objects(bucket_name): try: resp = obs_client.listObjects(bucket_name) if resp.status == 200: return resp.body.contents else: print(f'Error: {resp.status}') return None except Exception as e: print(f'Error: {e}') return None
# 查询指定对象的详情def get_object_detail(bucket_name, object_key): try: resp = obs_client.getObjectMetadata(bucket_name, object_key) if resp.status == 200: return resp.body else: print(f'Error: {resp.status}') return None except Exception as e: print(f'Error: {e}') return None
if __name__ == "__main__": # 指定OBS桶名称和设备上报的对象键(key) bucket_name = 'your_obs_bucket_name' object_key = 'your_object_key'
# 查询对象列表 objects = list_objects(bucket_name) if objects: print(f'Objects in bucket {bucket_name}: {objects}')
# 查询对象详情 object_detail = get_object_detail(bucket_name, object_key) if object_detail: print(f'Object detail: {object_detail}') else: print(f'Failed to get object detail for key {object_key}') else: print(f'Failed to list objects in bucket {bucket_name}')
复制代码


在上述代码中,您需要替换以下内容:


  • your_access_key_id: 您的华为云 Access Key ID。

  • your_secret_access_key: 您的华为云 Secret Access Key。

  • your_obs_endpoint: 您的 OBS 服务的 endpoint,如obs.cn-north-1.myhuaweicloud.com

  • your_obs_bucket_name: 您的 OBS 桶名称。

  • your_object_key: 设备上报的对象键(key),用于查询对象详情。


运行以上代码,将会查询指定桶中的对象列表,并获取指定对象的详情,从而验证数据转发是否成功。

6. 最佳实践和注意事项


在进行数据转发至 OBS 的操作过程中,有一些最佳实践和注意事项需要注意:

最佳实践


数据加密与安全


对于敏感数据,建议在数据传输过程中进行加密,确保数据的安全性。您可以使用 HTTPS 等安全加密协议来保护数据在传输过程中的安全。


数据生命周期管理


根据数据的生命周期和业务需求,合理设置数据的存储周期和过期策略,避免存储过期或无用的数据。定期审查和清理不再需要的数据,以释放存储空间并降低存储成本。


监控和报警


建议对数据转发和存储过程进行监控和报警,及时发现和处理异常情况,确保数据的可靠性和稳定性。您可以设置监控指标和报警规则,监测数据转发的状态和性能,并及时采取措施解决问题。

注意事项


存储桶权限设置


在创建存储桶时,需要根据实际需求设置存储桶的权限和访问策略,确保数据的安全和合规性。您可以限制访问存储桶的权限,只允许特定的用户或实体访问存储桶,并采用访问控制策略来保护存储桶中的数据。


区域选择


在设置转发目标时,需要选择与 OBS 服务相同的区域,确保数据能够顺利地转发和存储到指定的 OBS 桶中。选择相同的区域可以降低数据传输的延迟,并提高数据传输的效率和可靠性。

7.THE end


本文详细介绍了如何将华为云设备上报的数据转发至对象存储服务(OBS),并突出强调了这一操作的重要性和优势。通过将数据存储在 OBS 中,用户可以获得以下优势:


  1. 高可靠性和安全性:OBS 采用分布式架构和多副本存储,保障数据的安全和可靠性,同时提供数据加密等安全功能,确保数据的机密性和完整性。

  2. 低成本的数据存储:OBS 提供了经济实惠的存储方案,用户只需按照实际存储的数据量付费,避免了传统存储方案中需要提前购买存储设备和维护成本的问题。

  3. 强大的数据管理功能:OBS 提供了丰富的数据管理功能,包括数据分类、生命周期管理、数据迁移等,帮助用户更好地管理和利用存储在 OBS 中的数据。


通过将设备上报的数据转发至 OBS,用户可以实现数据的长期存储和管理,为应用程序提供稳定可靠的数据支持。因此,我们鼓励读者尝试并探索更多的数据存储和管理方法,以提高应用的效率和可靠性。通过合理利用云端存储服务,用户可以更好地应对不断增长的数据量和复杂的数据管理需求,为物联网应用的发展提供更强大的支持。


点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 5
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
华为云OBS助力物联网数据转发与存储_云计算_华为云开发者联盟_InfoQ写作社区