# 将会话保存至配置文件
在会话执行过程中或执行完成后，您可以将当前浏览器的状态保存到配置文件，以便后续会话加载复用。
保存操作将覆盖目标配置文件的现有状态，原有数据将被替换，请谨慎操作。
数据大小限制：单个配置文件（Profile）的数据包上限为50MB，超出将无法保存。
 #### 通过控制台将会话保存至配置文件
1. 登录[AgentArts智能体平台](https://console.huaweicloud.com/agentarts/#/home/overview)。
2. 在左侧导航栏选择"托管与运行 \> 浏览器"，进入浏览器界面。

3. 单击已创建的浏览器名称。
4. 在"会话管理"页签，单击会话列表中操作列的"查看实时会话"。
5. 在"实时会话"页面，查看浏览器页面，右上角单击"保存到配置文件"。
6. 在列表中选中目标配置文件，单击"确定"，当前会话状态将覆盖写入该配置文件。
 
 #### 通过SDK将会话保存至配置文件
浏览器沙箱工具支持通过SDK将当前会话状态（cookie、localStorage、sessionStorage）保存到指定的配置文件中，以便下次创建会话时恢复状态。SDK提供save_profile接口用于保存会话状态。
- **前提条件**
  在调用save_profile方法前，必须已经启动浏览器会话。
  
- **保存会话状态**
  在Python文件中通过SDK保存浏览器会话状态，相关参数说明以及配置示例如下：
  - **方法名**：save_profile
  
  - **配置以下参数** ：
    
    | 参数名         | 类型  | 描述                                                                                          |
    |:---|:---|:---|
    | profile_id | str | Required 要保存到的配置文件ID。由控制面创建并返回。                                                              |
    | api_key     | str  | API Key认证密钥。当使用API_KEY认证方式时，如果未提供此参数，SDK会尝试从环境变量HUAWEICLOUD_SDK_BROWSER_API_KEY获取。Default：None |
       
    
  
  - **返回值如下** ：
    包含保存结果的字典，包括：
    - profile_id (str): 已保存的配置文件ID。
    
    - saved_at (str): 保存时间。
    
    - size_bytes (int): 保存数据大小（字节）。
    
    - cookie_count (int): 保存的cookie数量。
    
    - origin_count (int): 保存的源数量。
     
  
  - **行为说明** ：
    - 必须在活跃会话中调用（会话终止后无法保存）
    
    - 保存的是当前会话的浏览器状态（cookie、localStorage、sessionStorage）
    
    - 保存后，下次创建会话时通过profile_configuration={"profile_id": "..."}加载该配置，即可恢复状态
     
    
**API KEY代码示例**
```
from agentarts.sdk.tools import Browser
# 创建浏览器客户端
client = Browser(region="cn-southwest-2", auth_type="API_KEY", verify_ssl=False)
# 启动会话（前提条件）
client.start_session(
    browser_name="your_browser_name",
    session_name="your_session_name",
    api_key="your_api_key"
)
# 执行浏览器操作
client.navigate(url="https://example.com", api_key="your_api_key")
# 保存当前会话状态到配置文件
result = client.save_profile(
    profile_id="your_profile_id",
    api_key="your_api_key"
)
print(f"保存结果: {result}")
# 终止会话
client.stop_session(api_key="your_api_key")
```
**IAM代码示例**
```
from agentarts.sdk.tools import Browser
# 创建浏览器客户端（使用IAM认证）
client = Browser(region="cn-southwest-2", auth_type="IAM", verify_ssl=False)
# 启动会话（前提条件）
client.start_session(
    browser_name="your_browser_name",
    session_name="your_session_name"
)
# 执行浏览器操作
client.navigate(url="https://example.com")
# 保存当前会话状态到配置文件
result = client.save_profile(profile_id="your_profile_id")
print(f"保存结果: {result}")
# 终止会话（IAM认证无需传递api_key）
client.stop_session()
```
**注意事项**
1. **前提条件**：调用save_profile前必须已经启动会话，否则会抛出异常
2. **调用时机**：必须在活跃会话中调用save_profile，会话终止后无法保存
3. **profile_id**：必须是通过控制面已创建的配置文件ID
4. **保存内容**：当前会话的浏览器状态，包括cookie、localStorage、sessionStorage
5. **状态恢复**：下次创建会话时通过profile_configuration={"profile_id": "..."}加载配置，即可恢复之前保存的状态
6. **认证方式** ：
   - API_KEY认证：需要传递api_key参数或设置环境变量HUAWEICLOUD_SDK_BROWSER_API_KEY
   
   - IAM认证：需要配置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK
    
 
