Ultralytics YOLO27: 加入候补名单。
Get Started

Azure Blob Storage 集成#

Azure Blob Storage 集成可将你的存储账户容器连接到 Ultralytics Platform。图像会保留在你的容器中;Platform 会就地索引图像,让你无需上传副本即可浏览、标注并训练 YOLO 模型。

Pro 功能

Azure Blob Storage 数据集需要专业版或企业版方案。免费工作区可以看到此集成,并会在连接时收到升级提示。即使订阅结束,现有 Azure Blob Storage 数据集仍可完全访问;只有新建连接和导入才需要专业版方案。

获取连接字符串#

Platform 只会读取你的存储内容,绝不会写入、修改或删除 Blob。当前集成需要使用账户访问密钥连接字符串,该字符串授予账户范围的权限,但 Platform 只会执行列出和读取操作:

  1. 在 Azure 门户中,打开你的存储账户。
  2. 前往 Security + networking > Access keys。
  3. 复制一个 connection string。

该字符串必须包含 AccountName、AccountKey,并将 HTTPS 设为协议——也就是 Azure 在 Access keys 下提供的格式。包含 SharedAccessSignature 而非 AccountKey 的 SAS 令牌连接字符串会被拒绝。

仅支持公有 Azure 云

连接使用标准 blob.core.windows.net 终结点。不支持主权云(Azure China、Azure Government)和自定义 Blob 终结点。

连接到 Platform#

  1. 前往 Settings > Integrations,然后从集成列表中选择 Azure Blob Storage。
  2. 粘贴连接字符串。
  3. 点击 Find available containers,然后选择要连接的容器。你也可以手动输入容器名称。
  4. 点击 Connect。Platform 会先验证能否列出并读取每个选定的容器,然后才保存任何信息。

Ultralytics Platform Azure Blob Storage 集成设置

你需要拥有工作区管理员或所有者角色,才能连接云存储。你 每次最多可以添加 50 个容器;系统最多会列出存储账户中的 300 个容器。

之后重新连接同一个存储账户时,可以向现有集成添加新容器。只有在替换凭据仍能读取所有已连接容器时,系统才会替换已保存的凭据。如果无法读取任何容器,错误信息会指出该容器,包括之前通过同一个存储账户连接的容器。

凭据安全

如果账户密钥在 Platform 之外泄露,攻击者可能会使用它授权写入和删除操作,或创建 SAS 令牌。凭据在静态存储时使用 AES-256-GCM 加密,绝不会返回到浏览器,也绝不会暴露给训练工作负载。在可行的情况下,请使用专用存储账户。如需撤销访问权限,请在 Azure 中轮换存储账户访问密钥。

从 Blob 容器创建数据集#

  1. 点击 New Dataset,然后打开 Cloud 选项卡。
  2. 选择一个已连接的容器,然后浏览到包含数据的文件夹。
  3. 确认文件夹,调整数据集名称,然后创建数据集。

Platform 会列出该文件夹一次,并为找到的内容创建索引:

  • 图像 — .jpg、.jpeg、.png、.webp 和 .avif Blob 会通过有界请求读取尺寸并进行索引。Platform 不会持久保存源图像的第二份副本。
  • 标签 — YOLO .txt 旁路文件会被解析为 Platform 标注,并按照标准的 images/ → labels/ 目录结构进行匹配,也可以作为同一文件夹中的同级文件匹配。
  • 元数据 — YAML 文件会提供类别名称和姿态关键点形状,与压缩包上传的处理方式完全相同。如果文件夹中有多个文件,则优先使用 data.yaml 和 data.yml。
  • 任务 — 系统会根据一组标签文件判断任务,因此即使你在对话框中选择了其他任务,也能根据标签形状识别分割、姿态和 OBB 文件夹。
  • 数据集划分 — Blob 路径中的 train、val 和 test 文件夹名称会自动分配数据集划分。

此数据集之后的使用方式与其他数据集相同:浏览并标注,将其设为公开或私有,与团队共享,并通过托管训练进行训练。原始文件会按需流式传输,已编入索引的图像不会占用 Platform 的存储配额。

限制

单次导入最多可索引 500,000 个 Blob,标签文件或 YAML 文件大小最多为 1 MB。较大的容器应拆分到多个数据集中。

保持已索引 Blob 不可变

每张已索引图像都会固定到其 Blob ETag;如果 Blob 在此期间发生变化,Platform 会采取默认拒绝策略。请添加新 Blob,而不要覆盖现有 Blob。

导入失败#

如果导入失败(例如文件夹为空、路径拼写错误或权限被撤销),数据集页面会显示错误。编辑者可以点击 重试导入,使用已存储的容器和文件夹重新开始导入;也可以创建一个指向正确路径的新数据集。

重试时会重新列出文件夹,而不是从中断处继续:首次尝试后新增的 Blob 会被纳入,不再存在的 Blob 则会从数据集中移除。

训练#

托管训练可通过常规训练流程进行。训练期间会使用 Platform 自己保存的已固定图像副本,你的 Azure 凭据绝不会暴露给训练工作负载。

断开连接#

断开连接会删除已存储的连接字符串,但不会触及 Azure 中的任何内容。基于这些容器构建的数据集会保留在你的工作区中,其中的类别、标签和标注也会保留;但在重新连接同一个存储账户之前,无法加载、预览或训练其中的图像。断开连接期间,你仍可重命名数据集、编辑标签或删除数据集。

如需断开连接,请前往 Settings > Integrations,选择 Azure Blob Storage,点击凭据旁边的 Disconnect,然后确认。之后打开相关数据集时,会显示 Azure Blob Storage Disconnected,并提供返回这些设置的链接;重新连接后,数据集会自动恢复。

你也可以使用 REST API 断开连接,并使用 GET /api/integrations/buckets 返回的集成 ID:

curl -X DELETE \
  -H "Authorization: Bearer YOUR_API_KEY" \
  https://platform.ultralytics.com/api/integrations/buckets/INTEGRATION_ID
from ultralytics_platform import Platform

client = Platform()  # reads ULTRALYTICS_API_KEY
integrations = client.storage_integrations.list()
client.storage_integrations.delete("INTEGRATION_ID")

如果要直接在源端撤销访问权限,请在 Azure 中轮换存储账户访问密钥。

当前限制#

Azure 数据集目前不支持需要 Platform 自己保存图像副本的功能:自动标注、聚类分析、数据集克隆,以及不可变的版本快照。

删除由 Azure 支持的数据集或其中的单张图片,只会移除 Platform 中的引用,不会触及你的 blob。

另请参阅 Google Cloud Storage 和 Amazon S3 集成。

常见问题#

  • 不会。Platform 只会列出一次容器,并为找到的图片建立索引,记录图片尺寸和标签。浏览和标注时,系统会按需流式传输原始图片;托管训练只会在训练运行期间使用 Platform 自己保存的固定图片副本。已建立索引的图片不会计入你的存储配额。

  • 数据集在创建时只会索引一次。只有创建新数据集或重试失败的导入,才能纳入新对象;每张已索引图像都会固定到其版本,因此覆盖对象会导致 Platform 对相应图像采取默认拒绝策略。请添加新对象,而不要替换现有对象。

  • 已连接的数据集不支持需要 Platform 自己保存图像副本的功能:自动标注、聚类分析、数据集克隆,以及不可变的版本快照。手动标注、共享和训练均可正常使用。

  • 在 Settings > Integrations 中断开集成即可删除已存储的凭据;你也可以在 Azure 中轮换存储帐户访问密钥。这两种操作都不会触及容器中的数据。

评论