【问题标题】:Amazon S3 video doesn't work in HTMLAmazon S3 视频在 HTML 中不起作用
【发布时间】:2015-02-02 21:02:15
【问题描述】:

我在访问 AmazonS3 上的视频时遇到问题。

我从像这样的服务器获取链接

https://myabc.s3.amazonaws.com/myvideo.mp4?Expires=1730335925&AWSAccessKeyId=ACDG57GDUYHLP7LYQ46Q&Signature=%2FkR9QTXf6bdHdHA%2ByTHwXdfDfo%3D.

现在我想通过使用 html 视频在网站上展示它,但我得到的只是一个错误。 当我在 chrome 中输入 url 时,它会执行一些操作,然后下载视频以使文件存在。

如何在视频标签中显示此视频?或者有没有可能在javascript中做到这一点?

【问题讨论】:

  • 你得到什么错误?
  • 您存储在 S3 中的“真实”视频是什么类型的文件?并非所有视频格式都可以在 HTML 中原生播放。
  • 大多数 avi、swf 或 mp4。

标签: javascript html video amazon-s3


【解决方案1】:

我建议将 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";   
}

【讨论】:

  • 问题是:我正在开发的公司使用访问密钥,因为这是他们为消息传递服务上传视频的方式。
  • 当您访问该文件时,他们希望您如何处理该文件。我现在正在看。看起来不是很机密
猜你喜欢
  • 2017-06-07
  • 2018-08-29
  • 2016-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-21
  • 2019-01-11
  • 1970-01-01
相关资源
最近更新 更多