1. 问题摘要
在 iOS (iPhone 13, iOS 17.x) 环境下,通过 X(原 Twitter) 应用 保存的图片直接在 iPhone 照片应用中上传至 GPT 时,发现该图片的 MIME-type 无法被正确识别,在 Action API 请求时处理为 null
,导致出现 400 错误。虽然图片格式为 JPEG,但 OpenAI 的文件服务未能正确推断 MIME。
2. 发生条件
- 使用设备: iPhone 13 (iOS 17.x)
- 上传方式: 从照片应用直接上传至 GPT
- 图片生成路径: 通过 X 应用下载按钮保存
- 文件格式: JPEG (基于 EXIF 信息和压缩方式)
- 扩展名标记:
.jpeg
或.JPEG
(照片应用) →.jpg
(在 Ubuntu 上与 Nextcloud 关联时确认) - 照片应用行为: 自动将 X 应用保存的图片归类到相册
3. 实验结果摘要
实验条件 | 来源 | 扩展名 | MIME 推断值 | 结果 |
---|---|---|---|---|
在照片应用上传 X 图片 | X 应用下载 | .jpeg |
null |
❌ 失败 |
复制到文件应用/Nextcloud 后上传 | X 图片副本 | .jpg |
image/jpeg |
✅ 成功 |
相同图片在 Ubuntu 上传 | Nextcloud 同步的文件夹 | .jpg |
image/jpeg |
✅ 成功 |
4. 分析与推测原因
4.1 X 应用的元数据干扰可能性
- 如
com.apple.metadata:kMDItemWhereFroms
这样的 iOS 专用元标签可能会干扰 MIME-type 的推断
4.2 扩展名与内部格式的不一致
- 在 iOS 中标记为
.jpeg
,而在 Ubuntu 等平台上处理为.jpg
,导致平台间推断方式存在差异
4.3 GPT 指定的 MIME-type 被忽视
- 即使 GPT 指定为
image/jpeg
,OpenAI 的文件服务仍然可能忽视这一点,处理为null
5. 建议与应对方向
5.1 用户方面的应对
- 请勿在照片应用中直接上传 X 应用保存的图片
- 推荐通过文件应用或 PC/Mac 转移图片文件进行上传
5.2 建议 OpenAI 和 Action SDK 的改进
- 改善对
.jpeg
扩展名的 MIME-type 推断 - 确保 SDK 不忽视 GPT 指定的 MIME-type
- 审查基于内容嗅探的回退处理,而不是依赖于元数据
6. 可提供的参考资料项
可应请求提供以下资料:
- iOS 照片应用与 Ubuntu 环境下的元数据比较截图
- 从 Ubuntu 中提取的媒体属性信息
- 被忽视的 GPT 指定的 mime_type
的实际请求日志
댓글이 없습니다.