Amazon S3 集成#
Amazon S3 集成可将你的 S3 存储桶连接到 Ultralytics Platform。你的图像会保留在存储桶中,Platform 会直接为图像编制索引,因此你可以浏览、标注图像并训练 YOLO 模型,无需上传副本。
Amazon S3 数据集需要Pro 或 Enterprise 套餐。免费工作区可以看到此集成,但在连接时会收到升级提示。如果订阅到期,现有 Amazon S3 数据集仍可完全访问,只有新连接和导入需要 Pro 套餐。
创建只读 IAM 用户#
Platform 只会读取你的存储,不会写入、修改或删除你的对象。请使用具有仅列出和读取权限的专用 IAM 用户,切勿使用 root 凭据:
-
在 AWS 控制台中,前往 IAM > Users,创建一个没有控制台访问权限的用户。
-
为该用户附加一项策略,仅授予对你想连接的存储桶进行列出和读取的权限:
{ "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 自动发现你的存储桶,这样你就不必手动输入存储桶名称。 -
打开该用户的 Security credentials 选项卡,创建一个 access key,然后复制访问密钥 ID 和秘密访问密钥。
Platform 会拒绝临时 AWS 凭据。AWS STS 签发的密钥——包括任何以 ASIA 开头的密钥、角色会话凭据和 IAM Identity Center 密钥——会在数据集仍处于连接状态时过期,因此必须使用专用 IAM 用户的长期访问密钥。
连接到 Platform#
- 前往 Settings > Integrations,然后在集成列表中选择 Amazon S3。
- 输入访问密钥 ID、秘密访问密钥和存储桶所在区域(例如
us-east-1)。 - 点击 Find available buckets,然后选择要连接的存储桶。如果策略不允许自动发现存储桶,请手动输入已知的存储桶名称。
- 点击 Connect。Platform 会先验证其能否列出并读取每个所选存储桶,然后才保存任何内容。

你需要拥有工作区管理员或所有者角色,才能连接云存储。每个连接最多可关联 50 个存储桶,发现功能最多会列出密钥可访问的 300 个存储桶。
稍后使用同一个 IAM 用户重新连接时,会将新存储桶添加到现有集成中。只有在替换凭据仍能读取所有已连接的存储桶时,保存的凭据才会被替换。
连接会读取你所填写区域中的存储桶。如果你的存储桶分布在多个区域,请为每个区域分别建立连接。
凭据在静态存储时使用 AES-256-GCM 加密,不会返回给浏览器,也不会暴露给训练工作负载。若要撤销访问权限,请在 AWS IAM 中停用访问密钥。
从 S3 存储桶创建数据集#
- 点击 New Dataset,然后打开 Cloud 标签页。
- 选择一个已连接的存储桶,并浏览到包含数据的文件夹。
- 确认文件夹,调整数据集名称,然后创建数据集。
Platform 会列出该文件夹一次,并为找到的内容建立索引:
- 图像 —
.jpg、.jpeg、.png、.webp和.avif对象会通过有大小限制的请求读取尺寸并建立索引。Platform 不会额外保存源图像的副本。 - 标签 — YOLO
.txt附属文件会解析为 Platform 标注,并按照标准的images/→labels/目录结构进行匹配,或与同一文件夹中的文件进行匹配。 - 元数据 — YAML 文件会提供类别名称和姿态关键点形状,与压缩包上传的处理方式完全相同。如果文件夹中有多个文件,则优先使用
data.yaml和data.yml。 - 任务 — 系统会根据部分标签文件判断任务,因此会依据标签形状识别分割、姿态和 OBB 文件夹,而不是依据你在对话框中选择的任务。
- 数据集划分 — 对象密钥中的
train、val和test文件夹名称会自动分配数据集划分。
此后,该数据集的使用方式与其他数据集相同:你可以浏览并标注,将其设为公开或私有,与团队共享,并通过托管训练在其上训练。原始图像会按需流式传输,已建立索引的图像不会占用 Platform 的存储配额。
单次导入最多为 500,000 个对象建立索引;标签或 YAML 文件的大小上限为 1 MB。对于更大的存储桶,应将内容拆分到多个数据集中。
每张已编制索引的图像都会绑定到其 S3 对象 ETag;如果对象被修改,Platform 会采取失败关闭措施。请添加新对象,而不要覆盖现有对象。
导入失败#
如果导入失败(例如文件夹为空、路径拼写错误或权限被撤销),数据集页面会显示错误。编辑者可以点击 Retry import,使用已保存的存储桶和文件夹重新启动导入,也可以创建一个指向正确路径的新数据集。
重试时会重新列出文件夹,而不是从中断处继续:首次尝试后添加的对象会被纳入,已不存在的对象则会从数据集中移除。
训练#
托管训练可通过常规训练流程进行。训练期间会使用 Platform 自己保存的已固定图像副本,你的 AWS 凭据绝不会暴露给训练工作负载。
断开连接#
断开连接会删除已存储的凭据,但不会触及 AWS 中的任何内容。基于这些存储桶创建的数据集仍会保留在你的工作区中,其类别、标签和标注也会保留,但在重新连接同一个 IAM 用户之前,无法加载、预览或用于训练其中的图像。
使用 REST API 和 GET /api/integrations/buckets 返回的集成 ID:
curl -X DELETE \
-H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/integrations/buckets/INTEGRATION_IDfrom 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 Storage 和 Azure Blob Storage 集成。
常见问题#
不会。Platform 会列出存储桶一次,并为找到的图像尺寸和标签建立索引。浏览和标注时,原始图像会按需流式传输;托管训练仅在训练运行期间使用 Platform 自己保存的、已绑定版本的图像副本。已建立索引的图像不会计入你的存储配额。
数据集在创建时只建立一次索引。只有创建新数据集或重试失败的导入,才能纳入新对象;每张已建立索引的图像都会绑定到其版本,因此覆盖对象会导致 Platform 对该图像采取关闭失败措施。请添加新对象,而不要替换现有对象。
在 Settings > Integrations 中断开集成即可删除已存储的凭据;你也可以在 AWS IAM 中停用或删除访问密钥。这两种操作都不会触及存储桶中的数据。