跳转到内容

快速开始

最后更新 2026年11月9日

本篇在服务器上签发一个上传地址,用命令行上传一个文件,再通过签名下载地址把它读回来。

账号开通时你会拿到:

  • 一个空间名,8 位小写字母和数字,例如 k3x9q2m7;
  • 这个空间的域名:公开文件用 <space>.edge.binedge.net,私有文件用 <space>.vault.binedge.net,上传用 <space>.upload.binedge.net;
  • 一把生产签名密钥和一把开发签名密钥,只放在你的服务器上。

文件放在哪里、最大多大、接受哪些类型、地址何时过期,都由你的服务器决定。用 Laravel 磁盘:

$upload = Storage::disk('binedge')->temporaryUploadUrl(
'avatars/42.png',
now()->addMinutes(10),
['ContentType' => 'image/png', 'ContentLength' => 5 * 1024 * 1024],
);

$upload['url'] 是签名地址,$upload['headers'] 里是上传时必须带的 Content-Type。不用 Laravel 时按签名链接拼地址:角色 upload,参数 exp、max_bytes 和 types。

用 PUT 发送文件,带同一个 Content-Type:

终端窗口
curl -X PUT \
-H 'Content-Type: image/png' \
--data-binary @avatar.png \
'https://k3x9q2m7.upload.binedge.net/production/avatars/42.png?exp=...&max_bytes=5242880&types=image%2Fpng&sig=...'

返回 200 且正文为空表示文件已存好。浏览器和 App 直接发同样的请求,你的服务器只负责签名。大文件或网络不稳时用分片续传。

私有文件要用签名下载地址:

$url = Storage::disk('binedge')->temporaryUrl('avatars/42.png', now()->addMinutes(10));

公开存储桶里的文件不用签名,并缓存在边缘节点:

https://k3x9q2m7.edge.binedge.net/production/avatars/42.png