通过 URL 传递文件
文件链接必须满足的规则,以及每种输入接受的内容类型。
没有上传端点。文件输入接受一个 公开的 HTTPS 链接,我们会在运行开始前获取、验证并复制到你的 Morphic 项目中。你的 CDN 仍然是你自己内容的源站,图片、视频、音频和文档都使用同一套约定。
每个链接都必须满足以下所有条件
| 要求 | 详情 |
|---|---|
| HTTPS | 明文 http 会被拒绝 |
| 它直接返回文件 | 响应体必须是字节流。预览页或分享页——例如 Drive 查看器、Dropbox 落地页,或任何 HTML 包装页——都会被拒绝 |
| 公共主机名 | 仅限主机名。IP 地址、 localhost,或解析到私有地址的名称都会被拒绝 |
| URL 中不能包含凭据 | https://user:pass@… 会被拒绝。预签名查询字符串是可以的,而且绝不会写入我们的日志 |
| 列出的内容类型 | 响应的 Content-Type 必须属于该输入的 url_content_types |
| 匹配的字节 | 在保存之前,会先将文件的前几个字节与其被提供时的类型进行检查。将 PNG 作为 PDF 提供、将 HTML 页面作为 JSON 提供,或将任何 ZIP 作为 DOCX 提供都会被拒绝 |
内部 max_bytes | 从 Content-Length 先检查,然后在字节流传输时再次强制执行 |
| 最多 3 次重定向 | 超过三跳即被拒绝 |
| 在整个获取过程中都有效 | 在传输中途过期的链接会导致运行失败 |
| 不能为空 | 返回 0 字节的链接会被拒绝 |
| 及时送达 | 在大约 40 秒内无法传完整个文件的主机会被拒绝,而一次运行中的所有链接合计大约只有 90 秒 |
有效期很短的签名链接通常会导致文件只获取到一半。请至少将其有效期设置为从你开始运行时起再延长几分钟。
按输入类型划分的内容类型
某个输入的确切列表在其 url_content_types中。这些是每种输入类型可配置接受的类型。
| 输入类型 | 内容类型 |
|---|---|
图像 | image/png, image/jpeg, image/webp, image/gif, image/tiff, image/avif, image/heic |
视频 | video/mp4, video/webm, video/quicktime, video/mpeg, video/x-matroska |
音频 | audio/mpeg, audio/wav, audio/aac, audio/ogg, audio/mp4, audio/webm |
文档 | application/pdf, text/plain, text/markdown, text/csv, application/json,以及 DOCX |
不在某个输入列表中的内容都会被拒绝。没有“任意文件”输入类型,而且文件扩展名从不可信——真正重要的是字节内容是什么。
每次运行的上限
所有文件输入的链接和字节数都会按每次运行统一限额——参见 错误与限制.