[ PROMPT_NODE_26914 ]
连接与会话管理
[ SKILL_DOCUMENTATION ]
# 连接与会话管理
本参考指南涵盖了使用 BlitzGateway 建立和管理到 OMERO 服务器连接的相关内容。
## 基础连接
### 标准连接模式
python
from omero.gateway import BlitzGateway
# 创建连接
conn = BlitzGateway(username, password, host=host, port=4064)
# 连接到服务器
if conn.connect():
print("连接成功")
# 执行操作
conn.close()
else:
print("连接失败")
### 连接参数
- **username** (str): OMERO 用户账号名称
- **password** (str): 用户密码
- **host** (str): OMERO 服务器主机名或 IP 地址
- **port** (int): 服务器端口 (默认: 4064)
- **secure** (bool): 强制加密连接 (默认: False)
### 安全连接
确保所有数据传输均已加密:
python
conn = BlitzGateway(username, password, host=host, port=4064, secure=True)
conn.connect()
## 上下文管理器模式(推荐)
使用上下文管理器进行自动连接管理和清理:
python
from omero.gateway import BlitzGateway
with BlitzGateway(username, password, host=host, port=4064) as conn:
# 自动建立连接
for project in conn.getObjects('Project'):
print(project.getName())
# 退出时自动关闭连接
**优势:**
- 自动调用 `connect()`
- 退出时自动调用 `close()`
- 异常安全的资源清理
- 代码更简洁
## 会话管理
### 从现有客户端连接
从现有的 `omero.client` 会话创建 BlitzGateway:
python
import omero.clients
from omero.gateway import BlitzGateway
# 创建客户端和会话
client = omero.client(host, port)
session = client.createSession(username, password)
# 从现有客户端创建 BlitzGateway
conn = BlitzGateway(client_obj=client)
# 使用连接
# ...
# 完成后关闭
conn.close()
### 获取会话信息
python
# 获取当前用户信息
user = conn.getUser()
print(f"用户 ID: {user.getId()}")
print(f"用户名: {user.getName()}")
print(f"全名: {user.getFullName()}")
print(f"是否为管理员: {conn.isAdmin()}")
# 获取当前组
group = conn.getGroupFromContext()
print(f"当前组: {group.getName()}")
print(f"组 ID: {group.getId()}")
### 检查管理员权限
python
if conn.isAdmin():
print("用户拥有管理员权限")
if conn.isFullAdmin():
print("用户是超级管理员")
else:
# 检查特定管理员权限