繁体   English   中英

如何在 React 中使用 AWS Amplify 构建视频转码器管道?

[英]How to build a Video Transcoder Pipeline with AWS Amplify in React?

我正在使用 AWS Amplify 和 React 构建 web 应用程序。 我要完成的功能是经过身份验证的用户上传视频。 S3 存储桶具有 lambda 触发器,可将视频转码为多种格式以供不同的观看者使用。 这些文件被上传到一个单独的存储桶,供 React Web 应用程序使用。

问题是 Amplify 项目可能只有一个与之关联的存储桶。 我在这里完成了一个关于使用无服务器平台的教程,它运行良好,但是当我尝试将第二个存储桶转移到我的项目中时,第二个存储桶被拒绝了。 我相信直接操作 cloudformation 模板是必要的,但我不知道如何或是否可能。

AWS 提供了一些媒体转码器服务,可以完成每个作业的转码,但我不知道如何通过 lambda function 从 React 启动然后将结果与我的 Amplify 项目关联起来。

有什么建议么?

Amplify 尚不支持多个存储桶。

在 Amplify 存储库中打开了 2 个问题:

这个: https://github.com/aws-amplify/amplify-cli/issues/1923这个已关闭,建议您应该在同一存储库中使用不同的前缀作为“最佳实践”。

但如果你不能这样做,有一些解决方法可以完成工作。

这是另一张票: https://github.com/aws-amplify/amplify-js/issues/329

最简单的解决方案是,如果您只需要调用get并且存储桶位于同一区域,那么您应该需要这样做

Storage.get(key1, {bucket: 'other-bucket'});  

另一个解决方案是调用configure

Amplify.configure({
    ...
    Storage: {
        bucket: 'other-bucket', //REQUIRED -  Amazon S3 bucket
        region: 'XX-XXXX-X', //OPTIONAL -  Amazon service region
    }
});

这有点烦人,但如果桶位于不同的区域并且您需要与get不同的操作,这是迄今为止唯一的解决方案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM