快速开始
最后更新 2026年11月9日
本篇在服务器上签发一个上传地址,用命令行上传一个文件,再通过签名下载地址把它读回来。
开通时我们给你什么
Section titled “开通时我们给你什么”账号开通时你会拿到:
- 一个空间名,8 位小写字母和数字,例如
k3x9q2m7; - 这个空间的域名:公开文件用
<space>.edge.binedge.net,私有文件用<space>.vault.binedge.net,上传用<space>.upload.binedge.net; - 一把生产签名密钥和一把开发签名密钥,只放在你的服务器上。
1. 签发上传地址
Section titled “1. 签发上传地址”文件放在哪里、最大多大、接受哪些类型、地址何时过期,都由你的服务器决定。用 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。
2. 上传文件
Section titled “2. 上传文件”用 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 直接发同样的请求,你的服务器只负责签名。大文件或网络不稳时用分片续传。
3. 读回文件
Section titled “3. 读回文件”私有文件要用签名下载地址:
$url = Storage::disk('binedge')->temporaryUrl('avatars/42.png', now()->addMinutes(10));公开存储桶里的文件不用签名,并缓存在边缘节点:
https://k3x9q2m7.edge.binedge.net/production/avatars/42.png