YOLO Vision 2026:

Amazon S3 集成#

Amazon S3 集成可将你的 S3 存储桶连接到 Ultralytics Platform。你的图像会保留在存储桶中——Platform 会直接在原位置为其建立索引,因此你无需上传副本即可浏览、标注和训练 YOLO 模型。

Pro 功能

Amazon S3 数据集需要Pro 或 Enterprise 计划。免费工作区可以看到该集成,但在连接时会提示升级。如果订阅结束,现有的 Amazon S3 数据集仍可完全访问——只有新连接和导入需要 Pro。

创建只读 IAM 用户#

Platform 只会从你的存储中读取数据——绝不会写入、修改或删除你的对象。请使用仅具有列出和读取权限的专用 IAM 用户,切勿使用根用户凭证:

  1. 在 AWS 控制台中,前往 IAM > Users,创建一个不具备控制台访问权限的用户。

  2. 附加一个策略,仅授予对你要连接的存储桶进行列出和读取的权限:

    {
        "Version": "2012-10-17",
        "Statement": [
            { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" },
            {
                "Effect": "Allow",
                "Action": ["s3:ListBucket", "s3:GetObject"],
                "Resource": ["arn:aws:s3:::my-bucket", "arn:aws:s3:::my-bucket/*"]
            }
        ]
    }

    s3:ListAllMyBuckets 是可选的——它允许 Platform 发现你的存储桶,因此你无需手动输入其名称。

  3. 打开用户的 Security credentials 选项卡,创建一个 access key,然后复制访问密钥 ID 和秘密访问密钥。

仅限长期 IAM 用户密钥

Platform 会拒绝临时 AWS 凭证。AWS STS 颁发的密钥——包括任何以 ASIA 开头的密钥、角色 会话凭证以及 IAM Identity Center 密钥——会在数据集仍处于连接状态时过期,因此必须使用专用 IAM 用户的长期访问密钥。

连接到平台#

  1. 前往 Settings > Integrations,然后从集成列表中选择 Amazon S3
  2. 输入访问密钥 ID、秘密访问密钥和存储桶区域(例如 us-east-1)。
  3. 点击 Find available buckets,然后选择要连接的存储桶。如果策略不允许发现存储桶,请手动输入 已知的存储桶名称。
  4. 点击 Connect。平台会先验证其能够列出并读取每个选定的存储桶,然后才保存任何内容。

Ultralytics Platform Amazon S3 集成设置

你需要工作区管理员或所有者角色才能连接云存储。一个 连接最多可承载 50 个存储桶,发现功能最多会列出密钥可访问的 300 个存储桶。

之后重新连接同一个 IAM 用户时,会将新存储桶添加到现有集成中。只有在替换凭证仍能读取你已连接的每个存储桶时,保存的凭证才会被替换。

每个连接只能对应一个区域

一个连接会读取你输入的区域中的存储桶。如果你的存储桶位于多个区域,请为每个区域分别建立连接。

凭据安全

凭证会使用 AES-256-GCM 进行静态加密,绝不会返回到浏览器,也绝不会暴露给训练工作负载。若要撤销访问权限,请在 AWS IAM 中停用访问密钥。

从 S3 存储桶创建数据集#

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

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

  • 图像.jpg.jpeg.png.webp.avif 对象会通过有界请求读取尺寸并建立索引。平台不会持久化源图像的第二个副本。
  • 标签 — YOLO .txt 伴随文件会被解析为平台标注,并按照标准的 images/labels/ 布局进行匹配,或与同一文件夹中的同级文件匹配。
  • 元数据 — YAML 文件提供类别名称和姿态关键点形状,处理方式与存档上传完全相同。当文件夹中有多个 YAML 文件时,优先使用 data.yamldata.yml
  • 任务 — 系统会根据标签文件样本确定任务,因此会依据标签形状识别分割、姿态和 OBB 文件夹,而不是使用你在对话框中选择的任务。
  • 划分——对象键中的 trainvaltest 文件夹名称会自动分配数据集划分。

之后,该数据集的行为与其他数据集相同:你可以浏览并进行标注,将其设为公开或私有,与团队共享,并通过托管训练在其上进行训练。原始文件会按需流式传输,建立索引的图像不会占用你的平台存储配额

限制

单次导入最多可为 50,000 个对象建立索引,标签文件或 YAML 文件的大小上限为每个 1 MB。较大的存储桶应拆分到多个数据集中。

保持已建立索引的对象不可变

每个建立索引的图像都会固定到其 S3 对象 ETag;如果对象在 Platform 下层发生变化,Platform 会采取故障关闭策略。请添加新对象,而不是覆盖现有对象。

导入失败#

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

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

训练#

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

断开连接#

断开连接会删除已存储的凭证,但不会触及 AWS 中的任何内容。使用这些存储桶创建的数据集会保留在你的工作区中,其类别、标签和标注也会保留,但在再次连接同一个 IAM 用户之前,无法加载、预览或训练其中的图像。

使用带有 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")

如果要直接在源端撤销访问权限,请在 AWS IAM 中停用或删除访问密钥。

当前限制#

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

删除 S3 支持的数据集或其中的单张图像,只会移除 Platform 的引用——你的对象绝不会受到影响。

另请参阅 Google Cloud StorageAzure Blob Storage 集成。

常见问题#

  • 不会。Platform 只会列出存储桶一次,并索引它找到的图片尺寸和标签。原始图片会在浏览和标注时按需流式传输,托管训练仅在运行期间使用 Platform 自身的固定图片副本。已索引的图片不计入你的存储配额

  • 数据集在创建时只会被索引一次。在新数据集创建或重试失败的导入之前,新对象不会被抓取,并且每个已索引的图片都固定在其版本上,因此覆盖对象会导致 Platform 对该图片采取故障安全(fail closed)处理。请添加新对象,而不是替换现有对象。

  • 在连接的数据集上,需要 Platform 拥有图片副本的功能会被排除:自动标注、聚类分析、数据集克隆和不可变的版本快照。手动标注、共享和训练均可正常进行。

  • Settings > Integrations 中断开集成以删除存储的凭据,或者在 AWS IAM 中停用或删除访问密钥。这两种操作都不会触及你存储桶中的数据。

评论