上传文件到 Blob Storage
通过 POST /v1/objects 向 Blob Storage 上传最大 100 MB 的文件:公开或私有,并支持过期、缓存、元数据和校验和选项。
对象上传会上传一个文件,并返回其
id,对于公开文件还会返回一个可直接嵌入或分享的 CDN url。它为托管在平台上的应用提供附件、生成的导出文件和用户上传媒体的存储支撑。
单个请求接受 512 字节到 100 MB 的文件。更大的文件(最大 10 GiB)请走分块上传流程或 S3 网关。需要 blob:write scope,或在 Authorization 中发送的上传令牌,以及有效计划。
请将返回的
id 视为不透明值:原样保存,并在调用其他路由时原样传回。它以 pub/ 或 prv/ 开头,并可能在文件的可见性或过期时间改变时发生变化。2026 年 9 月更新之前存储的旧版文件保留不带该前缀的 id,所有路由都同时接受这两种形式。参数
file
必填
使用 FormData(
请发送真实的文件名:存储的扩展名来自文件名(
multipart/form-data),每个请求恰好一个文件。请发送真实的文件名:存储的扩展名来自文件名(
reads.fastq.gz 保持为 .fastq.gz)。string
必填
文件名,不含扩展名。1 到 128 个字符:字母、数字、
_、. 和 -,并以字母、数字或 _ 开头。不能包含 ..。string
文件所在的文件夹路径,最多 8 个以
/ 分隔的路径段,总长不超过 256 个字符。每个路径段遵循与 name 相同的模式,最多 64 个字符。末尾的 / 会被忽略。string
在此时间后自动删除文件:
30 或 30d 表示天数,6h 表示小时数。范围为 1 小时到 1825 天(5 年)。7 天以内的过期时间需要 Enterprise 计划。省略时由该前缀的规则决定。boolean
默认值:"false"
true 会在名称后添加一个随机后缀,使 URL 无法被猜到,且新的上传永远不会替换旧文件。私有文件始终带有该后缀(false 与 private=true 同时使用会被拒绝)。boolean
默认值:"true"
没有安全哈希时,名称和前缀相同的新上传会替换原文件。设为
false 则会拒绝上传并返回 409 OBJECT_ALREADY_EXISTS。string
inline(在浏览器中打开)或 attachment(以原始文件名下载)。boolean
默认值:"false"
true 会让浏览器下载该文件而不是打开它,无论文件类型如何。string
CDN 和浏览器保留该文件的时长:
immutable(1 年)、max-age=N(N 为 60 到 31536000 秒),或 no-cache(每次读取都访问存储;仅限 Enterprise)。带有安全哈希的文件默认为 immutable。缓存时长绝不会超过文件的过期时间。string
文件的 SHA-256。不匹配时,上传会被拒绝并返回
CHECKSUM_MISMATCH,不会存储任何内容。速率限制与并发
- 每个账户同一时间最多可有 4 个正在进行的上传(
TOO_MANY_CONCURRENT_UPLOADS,429)。 - Hobby 和 Standard 计划限制为每秒 1 次上传(
RATE_LIMITED,429)。Pro 和 Enterprise 不受此限制。 - 超出账户内置存储配额的上传会被拒绝并返回
STORAGE_QUOTA_EXCEEDED。
文件类型
实际上任何扩展名都可以接受,包括没有注册 MIME 类型的格式(.bam、.vcf、.fasta、.parquet、.h5、.npy 等)。
- 分发时的
Content-Type由服务器端根据扩展名推导。未知格式以application/octet-stream分发。 - 浏览器会渲染的格式(
.html、.svg、.xml及类似格式)始终以下载方式分发。 - 可执行文件和安装程序会被拒绝并返回
BLOCKED_FILE_TYPE:exe、msi、dll、bat、cmd、com、scr、cpl、pif、hta、vbs、vbe、jse、wsf、wsh、msc、reg、lnk、sys、drv、ps1、apk、xpi。 - 该前缀的规则或上传令牌可以限制可接受的扩展名和大小。
响应
string
成功为 “success”,否则为 “error”。
object
错误
完整列表请参见错误。
相关内容
- Blob SDK:
blob.put()

