华为云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桶的步骤:

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

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

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

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

  3. 创建新的OBS桶

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

  4. 填写桶的配置信息

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

  5. 确认并创建

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

  6. 等待创建完成

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

4. 配置设备接入服务

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

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

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

  1. 单击"进入控制台"进入对象存储服务管理控制台。
  2. 单击页面右上角的"创建桶"按钮。
  3. 根据需求选择桶的规格和配置项,然后单击"立即创建"按钮,即可创建一个新的OBS桶。

* 编写Python部署代码

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

ini 复制代码
import logging
from 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_keyserver 参数为您的华为云OBS账户的具体信息。
  • report_data_to_obs 函数用于将设备上报的数据上载到指定的OBS桶中。
  • simulate_device_data 函数用于模拟设备上报数据,您可以根据实际情况更改数据内容。

* 部署和运行代码

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

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

5. 验证操作

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

验证数据转发的步骤:

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

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

查询上报数据

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

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

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

python 复制代码
from obs import ObsClient

# 初始化ObsClient
obs_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,用户可以实现数据的长期存储和管理,为应用程序提供稳定可靠的数据支持。因此,我们鼓励读者尝试并探索更多的数据存储和管理方法,以提高应用的效率和可靠性。通过合理利用云端存储服务,用户可以更好地应对不断增长的数据量和复杂的数据管理需求,为物联网应用的发展提供更强大的支持。

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

相关推荐
算家计算2 小时前
5年后手机和APP将成历史?马斯克最新预言背后:端云协同与AI操作系统的未来架构
人工智能·云计算·资讯
QQ12958455045 小时前
ThingsBoard部件数据结构解析
数据结构·数据库·物联网·iot
周杰伦_Jay6 小时前
【网络编程、架构设计与海量数据处理】网络编程是数据流转的血管,架构设计是系统扩展的骨架,海量数据处理是业务增长的基石。
网络·golang·实时互动·云计算·腾讯云·语音识别
TDengine (老段)6 小时前
TDengine 数学函数 ASCII 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
TDengine (老段)11 小时前
TDengine 数学函数 TRUNCATE 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
TDengine (老段)11 小时前
TDengine 数据函数 CORR 用户手册
大数据·数据库·物联网·时序数据库·tdengine·1024程序员节
搜移IT科技20 小时前
2025广州国际物联网产业生态博览会(物联网展)最新技术与亮点揭秘!
物联网
卍郝凝卍1 天前
NVR(网络视频录像机)和视频网关的工作方式
网络·图像处理·物联网·音视频·视频解决方案
kaka❷❷1 天前
STM32 单片机 ESP8266 联网 和 MQTT协议
stm32·单片机·嵌入式硬件·物联网·mqtt·esp8266
@HNUSTer1 天前
基于 GEE MODIS 数据的区域干旱监测——从植被状况指数(VCI)计算到干旱分级与空间分布可视化
云计算·数据集·遥感大数据·gee·云平台·modis·干旱监测