我建议将 ACL 设置为公开,并将所有非 HTML5 格式转换为 mp4,因为 mp4 具有最多的浏览器支持。
如果您没有桌面 S3 实用程序,您可能想尝试免费的 Cloudberry Explorer。
将您的 ACL 设置更改为公开,无需访问密钥即可访问该文件。
确保内容类型是视频/mp4
如果没有指向 mp4 的实际链接,我无法确定问题所在。
如果您遇到与示例链接相同的错误,则需要生成新的访问密钥。
如果 ACL 不是公开的,并且客户端会为您生成一组访问密钥,则无能为力。
我能够通过您提供的链接下载视频。
它是一个 AVI 文件而不是 mp4,所以它在 HTML5 <video> 中不起作用。
这是没有访问密钥的错误。
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>63085EEB23066C91</RequestId>
<HostId>1bPb9fYkki/LnQIVRVpHfKiSEUGbfX3blBfHLQbwzjZYSzzD8hGBQFp0l9WE=
</HostId>
</Error>
如果您熟悉 PHP,这里有一个简单的 S3 API。
Services_Amazon_S3
require_once 'Services/Amazon/S3.php';
require_once 'Services/Amazon/S3/Stream.php';
$key = 'ASJMGERQERMGADMA';
$secret = 'hA9/wrWUMX7A0UADLNGBQEUIROH2cPjx+C';
$s3 = Services_Amazon_S3::getAccount($key, $secret);
$stream = Services_Amazon_S3_Stream::register('s3',array('access_key_id'=> $key,'secret_access_key' => $secret));
foreach ($s3->getBuckets() as $bucket){
$name = $bucket->name ;
$path = "s3://$name/";
}
$cnt = 0;
$ndx = 0;
$bucket = $s3->getBucket($name);
foreach ($bucket->getObjects() as $object){
$key = $object->key;
$url = urldecode($object->getURL());
echo "<p>$key => $url";
}