0

让我们的客户将音频文件发送到我们将处理音频文件的 S3 存储桶(将执行语音到文本洞察的 ML 流程)的最佳可靠方法是什么?

这些文件可以是 .wav / mp3 其他此类音频格式。此外,某些文件的大小可能更大。

喜欢获得最好的想法?(例如 API Gateway / Lambda / S3 ?)很想听听以前可能做过这件事的任何人。

提供上下文的一些问题和答案:

用户如何与您的系统交互?我们正在寻找基于 API 的方法与基于浏览器的方法。我们可以使用基于浏览器的方法,但不确定这是否是正确的技术/架构/可扩展方法

您需要批量上传方法吗?是的。我们需要批量上传功能,一些单独的文件也可能更大

它会由人控制,还是您希望它以某种方式自动上传?当然要自动

最终,我们正在构建一个 SaaS 解决方案,它将获取音频文件和元数据并对其执行分析,并通过 API 将我们的分析结果返回给应用程序。所以我们正在寻找的方法是在这种情况下可行的

4

1 回答 1

0

我有一个类似的场景。

如果您打算使用 Api Gateway/Lambda/s3,那么您应该知道 Gateway 和 Lambda 可以接受的有效负载大小是有限制的。具体来说,Api Gateway 接受 10 MB 以内的有效负载和 6MB 以内的 Lambda。

不过,这个问题有一个解决方法。您可以将文件直接上传到 s3 存储桶上,并在创建对象时附加 lambda 触发器。

我会留下一些文章,可能会为您指明正确的方向:

  1. 使用预签名 URL 上传文件: https ://docs.aws.amazon.com/AmazonS3/latest/userguide/PresignedUrlUploadObject.html
  2. 创建 s3 对象时的 Lambda 触发器:https ://medium.com/analytics-vidhya/trigger-aws-lambda-function-to-store-audio-from-api-in-s3-bucket-b2bc191f23ec
  3. 对同一问题的整体看法:https ://sookocheff.com/post/api/uploading-large-payloads-through-api-gateway/
  4. 相关 GitHub 问题: https ://github.com/serverless/examples/issues/106

所以从我的观点来看,关于上传文件,最好的方法是返回一个预签名的 URL,然后让客户端直接将文件上传到 S3。否则,您必须实现分块上传文件。

于 2021-07-28T11:54:00.147 回答