You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PHP API向Bunny CDN视频库上传视频文件?

Bunny CDN视频API上传文件的正确流程

你遇到的问题是因为Bunny CDN的视频上传需要分两步:先创建空的视频条目,再获取专属上传URL来上传实际视频文件。官方文档的示例只覆盖了第一步,下面是完整的实现步骤和代码:

步骤1:创建视频条目

这一步是初始化一个视频记录,生成videoId,后续上传会用到。你可以在请求里添加标题等元数据:

require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();
$libraryId = "你的库ID";
$videoId = "自定义或生成的视频ID"; // 可以自己指定,也可以留空让系统生成

$response = $client->request('PUT', "https://video.bunnycdn.com/library/{$libraryId}/videos/{$videoId}", [
    'headers' => [
        'accept' => 'application/json',
        'AccessKey' => '你的Bunny CDN API密钥',
    ],
    'json' => [
        'title' => '我的测试视频', // 添加视频标题
        'collectionId' => '' // 可选,指定分类ID
    ]
]);

$videoData = json_decode($response->getBody(), true);
$videoId = $videoData['guid']; // 如果之前没指定videoId,这里取返回的guid

步骤2:获取上传URL

创建条目后,调用接口获取该视频的专属上传URL:

$uploadResponse = $client->request('GET', "https://video.bunnycdn.com/library/{$libraryId}/videos/{$videoId}/uploadUrl", [
    'headers' => [
        'AccessKey' => '你的Bunny CDN API密钥',
    ]
]);

$uploadUrl = json_decode($uploadResponse->getBody(), true)['uploadUrl'];

步骤3:上传视频文件

拿到上传URL后,用PUT请求把视频文件上传到这个地址:

$filePath = '/path/to/your/video.mp4';

$uploadFileResponse = $client->request('PUT', $uploadUrl, [
    'headers' => [
        'Content-Type' => 'video/mp4', // 根据你的视频格式调整
    ],
    'body' => fopen($filePath, 'r')
]);

echo "上传成功,状态码:" . $uploadFileResponse->getStatusCode();

关键注意事项

  • 确保API密钥有视频库的写入权限
  • 上传时的Content-Type要和视频文件格式匹配(比如video/mp4、video/mov等)
  • 如果视频文件较大,建议分块上传(Bunny CDN支持分块,可参考官方文档的分块上传说明)

内容的提问来源于stack exchange,提问作者Moaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 04:47:08