gpt4 book ai didi

http - CloudFront 签名 URL 抛出 403 禁止错误

转载 作者:可可西里 更新时间:2023-11-01 16:42:37 24 4
gpt4 key购买 nike

<分区>

我正在尝试将 CloudFront 用作我的视频点播网站的 CDN。

我已经创建了一个 HTTP 分发(因为我需要流式传输到 iOS 设备,所以 RTMP 不适合),并将源设置为我存储视频文件的 S3 存储桶。我还创建了一个 CloudFront key 对。

使用 AWS PHP SDK,我创建了一个像这样的签名 URL(在 Laravel 中):

$cloudfront = AWS::get('CloudFront');

$streamHostUrl = 'http://REDACTED.cloudfront.net';
$resourceKey = 'videos/output/hls/REDACTED.m3u8';
$expires = '+10 minutes';

$signed_url = $cloudfront->getSignedUrl(array(
'url' => sprintf('%s/%s', $streamHostUrl, $resourceKey),
'expires' => $expires,
'private_key' => base_path('cloudfront.pem'),
'key_pair_id' => 'APKAIPX4UJ26KJ65PKIA',
));

这会创建一个符合我预期的 URL。

私钥文件的路径是正确的,我的bucket中的指定对象(REDACTED.m3u8)有Everyone权限可以查看/下载(与该文件夹中的所有其他对象一样)。然后我将 URL 嵌入到网页中:

<!DOCTYPE html>
<html>
<head>
<title>HTTP Live Streaming Example</title>
</head>
<body>
<video src="<?php echo $signed_url; ?>" height="300" width="400" controls>
</video>
</body>
</html>

但是,这会向控制台抛出一个 403 Forbidden 错误。

我做错了什么?为什么无法通过 CloudFront 检索任何对象?

我已经禁用了对签名 URL 的要求,当我访问没有查询字符串参数(即 http://REDACTED.cloudfront.net/videos/output/hls/REDACTED.m3u8)的对象时,视频显示,所以当我启用对签名 URL 的需要时出现问题。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com