YOLO Vision 2026:

Azure Blob Storage 集成#

Azure Blob Storage 集成将你的存储账户容器连接到 Ultralytics Platform。你的图片保留在你的容器中 —— Platform 会就地为其建立索引,因此你无需上传副本即可浏览、标注和训练 YOLO 模型。

Pro 功能

Azure Blob Storage 数据集需要 Pro 或 Enterprise plan。免费工作区可以看到集成,并在连接时提示升级。如果订阅结束,现有的 Azure Blob Storage 数据集仍可完全访问 —— 只有新连接和导入才需要 Pro。

获取连接字符串#

平台仅从你的存储中进行读取——它绝不会写入、修改或删除你的 blob。当前的集成需要一个账户访问密钥连接字符串,尽管平台仅使用列表(list)和读取(read)操作,但该字符串会授予账户级的特权:

  1. 在 Azure 门户中,打开你的存储账户。
  2. 转到 Security + networking > Access keys(安全+网络 > 访问密钥)。
  3. 复制一个 connection string(连接字符串)。

该字符串必须带有 AccountNameAccountKey 且协议为 HTTPS——即 Azure 在访问密钥 (Access keys) 下提供给你的格式。包含 SharedAccessSignature 而非 AccountKey 的 SAS 令牌连接字符串将被拒绝。

仅限公共 Azure 云

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

连接到 Platform#

  1. 前往设置 > 集成,并在集成列表中选择 Azure Blob Storage
  2. 粘贴连接字符串。
  3. 点击 Find available containers,然后选择要连接的容器。你也可以手动输入容器名称。
  4. 点击 Connect(连接)。平台在保存任何内容之前,会验证其是否可以列出并读取每个选定的容器。

Ultralytics Platform Azure Blob Storage Integration Settings

连接云存储需要工作空间管理员或所有者角色。单个连接最多可承载 50 个容器,且发现功能在存储账户中最多列出 300 个容器。

稍后重新连接同一个存储账户会将新容器添加到现有集成中。仅当替换后的凭据仍然可以读取你已连接的所有容器时,已保存的凭据才会被替换。

凭据安全性

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

从 Blob 容器创建数据集#

  1. 点击新建数据集并打开云端标签页。
  2. 选择一个已连接的容器并浏览到包含你数据的文件夹。
  3. 确认文件夹,调整数据集名称,然后创建数据集。

Platform 会列出文件夹一次并索引其发现的内容:

  • Images.jpg.jpeg.png.webp.avif blob 通过有界请求读取的尺寸进行索引。Platform 不会保留源图片的第二个副本。
  • Labels — YOLO .txt 附属文件会被解析为 Platform 标注,通过标准的 images/labels/ 布局进行匹配,或者作为同一文件夹下的同级文件匹配。
  • 元数据 — YAML 文件提供类别名称和姿态关键点形状,这与存档上传完全一样。当文件夹中包含多个文件时,优先使用 data.yamldata.yml
  • 任务 — 标签文件的样本决定了任务类型,因此分割、姿态和 OBB 文件夹是根据其标签形状识别的,而不是根据你在对话框中选择的任务识别的。
  • Splits — blob 路径中的 trainvaltest 文件夹名称会自动分配拆分。

该数据集随后表现得与其他数据集一样:你可以浏览并标注它、将其设为公开或私有、与团队共享,并通过托管训练在其上进行训练。原始内容按需流式传输,且索引后的图片不会消耗你的 Platform存储配额

限制

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

保持已索引的 blob 不可变

每个已索引的图像都会固定在其 blob ETag 上,如果 blob 在后台发生变化,平台会失败以确保安全。请添加新的 blob,而不是覆盖现有文件。

导入失败#

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

重试会重新列出文件夹而不是恢复:自第一次尝试以来添加的-blob 会被纳入,而不再存在的-blob 则会从数据集中丢弃。

训练#

托管训练通过正常的训练流程运行。训练在运行期间使用 Platform 自身的固定图像副本,并且你的 Azure 凭据绝不会暴露给训练工作负载。

断开连接#

断开连接会删除存储的连接字符串,而不会触及 Azure 中的任何内容。从这些容器构建的数据集会保留在你的工作空间中,其类别、标签和标注也依然存在,但在重新连接相同的存储账户之前,无法加载、预览或使用这些图像进行训练。

使用带有 GET /api/integrations/buckets 返回的集成 ID 的 REST API

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 拥有你的图片副本的功能:自动标注、clustering analysis、数据集克隆以及不可变的 version snapshots

删除 Azure 支持的数据集或其中的单个图像仅会移除平台的引用——你的 blob 绝不会被触及。

另请参阅 Google Cloud StorageAmazon S3 集成。

评论