上传到 aws s3 的 youtube 视频无法正常播放

Posted

技术标签:

【中文标题】上传到 aws s3 的 youtube 视频无法正常播放【英文标题】:Uploaded youtube videos to aws s3 is not playing properly 【发布时间】:2019-06-01 20:18:01 【问题描述】:

我正在尝试将 youtube 视频上传到 aws S3 存储桶。视频已正确上传,但无法正常播放。我写了这段代码:

试用代码:

$uploadPath = "videouploads/$parsed.mp4";
file_put_contents($uploadPath, file_get_contents($dowloadUrl));
// @formatter:off
$result = $s3->putObject(array(
    'Bucket'     => 'MY_BUCKET',
    'Key'        => 'MY_OBJECT_KEY',
    'SourceFile' => $uploadPath,
));

它会将视频上传到我的 s3 存储桶中。但是当我使用 cloudflare 检索它时,网址将是:

https://media.poweradspy.com/pasvideos/youtube/1w5rtJm8Ujg

【问题讨论】:

“但是当我使用 cloudfare 检索它时” - 你如何检索它?你是怎么得到那个网址的?请向我们展示该问题的所有相关代码。目前,您只是向我们展示了上传代码,您说它有效。 @MagnusEriksson 我们已经设置了 cloudfare 来隐藏我们的原始视频网址。所以 url 就只有这个 【参考方案1】:

URL 没有提示文件类型(例如.mp4)。

您的上传过程应针对对象存储适当的内容类型,以便浏览器知道它是什么类型的文件。

见:amazon web services - Specify Content-Type in AWS php's upload function - Stack Overflow

【讨论】:

以上是关于上传到 aws s3 的 youtube 视频无法正常播放的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# HttpClient 或 AWS SDK 通过 CloudFront 将视频上传到 S3

将视频 URI 从 React-Native Picker 上传到 AWS S3 服务器

使用retrofit2视频/图像损坏的AWS S3文件上传

如何使用 AWS 流式传输上传的视频?

PUT 上传文件到 AWS S3 预签名 URL Retrofit2 Android

无法将 Nativescript 图像上传到 S3