更新时间:2024-05-14 GMT+08:00
接口调用下载
体积计算的结果存放在华为云的云存储服务OBS上,用户需要从指定的OBS路径下载,具体步骤如下:
- 获取华为云账号的访问密钥(AK/SK),若本地已保存密钥,可跳过本步骤。
- 获取体积计算结果的下载路径。
获取体积计算作业详情的响应outputs,获取“体积计算结果“的OBS URL:
outputs": { "BATCH_VOL_RESULT_OBS": { "paths": [ "obs://{BUCKET_NAME}/{MEASURE_SPACE_NAME}/{COLLECT_BATCH_ID}/{JOB_ID}/volume_result" ] } },
- 使用OBS工具,用户可参照obsutil使用指南,结合从步骤1获取的访问密钥下载体积结果。
- 对文件参照下述格式进行解析,得到体积计算结果。
# 导入必要的库 import json import os # 定义一个简单的结构体类来表示数据 class DataItem: def __init__(self, name, result): self.name = name self.result = result # 定义下载文件的函数 def download_file_from_obs(bucket_name, object_name, destination_file_path): # 这里使用obsutil命令行工具来下载文件 os.system(f"obsutil cp obs://{bucket_name}/{object_name} {destination_file_path}") # 定义读取文件并反序列化JSON的函数 def read_and_deserialize_json(file_path): with open(file_path, 'r') as file: data = json.load(file) return data # 将JSON数据反序列化为DataItem结构体列表的函数 def deserialize_to_struct(json_data): struct_list = [] for item in json_data: struct_list.append(DataItem(item['name'], item['result'])) return struct_list # 主程序 if __name__ == "__main__": # 从OBS下载result.txt文件 download_file_from_obs('xxx', 'xxx/result.txt', 'result.txt') # 读取并反序列化JSON数据 json_data = read_and_deserialize_json('result.txt') # 将JSON数据反序列化为结构体列表 data_struct_list = deserialize_to_struct(json_data) # 打印结果 for data_item in data_struct_list: print(f"name: {data_item.name}, result: {data_item.result}")
父主题: 体积计算结果下载