如何从 Aws s3 流式传输音频文件 (mp3)?

How can I stream audio files (mp3) from Aws s3?

我有一个简单的 javascript 播放器,我想从 aws s3 sdk (Php) 流式传输音频文件 (mp3)。 这些文件是 私有的 所以我也应该进行身份验证。

如果我通常将 mp3 文件的 public link 插入到 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

希望对您有所帮助。