【发布时间】:2020-09-07 12:40:20
【问题描述】:
我有一个简单的 javascript 播放器,我想从 aws s3 sdk (Php) 流式传输音频文件 (mp3)。 这些文件是私有的,所以我也应该进行身份验证。
如果我将 mp3 文件的公共链接插入到 html 对象的 src 中,流就可以工作。
Tnx
【问题讨论】:
我有一个简单的 javascript 播放器,我想从 aws s3 sdk (Php) 流式传输音频文件 (mp3)。 这些文件是私有的,所以我也应该进行身份验证。
如果我将 mp3 文件的公共链接插入到 html 对象的 src 中,流就可以工作。
Tnx
【问题讨论】:
您不需要通过 php 后端进行流式传输。您可以使用 php 代码生成 Presigned url 并将其发送到前端。它将在有限的时间内访问。
示例 PHP 代码:
//Creating a presigned request
$s3Client = new Aws\S3\S3Client([
'profile' => 'default',
'region' => 'us-east-1',
'version' => '2006-03-01',
]);
$cmd = $s3Client->getCommand('GetObject', [
'Bucket' => 'my-bucket',
'Key' => 'testKey'
]);
$request = $s3Client->createPresignedRequest($cmd, '+20 minutes');
$presignedUrl = (string) $request->getUri();
参考:
https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/s3-presigned-url.html
希望对你有帮助。
【讨论】: