【问题标题】:Best choice of uploading files into S3 bucket将文件上传到 S3 存储桶的最佳选择
【发布时间】:2019-05-28 03:42:48
【问题描述】:

我必须从我的 React Web 应用程序将视频文件上传到 S3 存储桶。我目前正在开发一个简单的反应应用程序,我正在尝试从这个应用程序将视频文件上传到 S3 存储桶中,因此我决定了两种实现上传部分的方法。

1) Amazon EC2 实例: 从前端,我点击 API,服务器正在 Amazon EC2 实例中运行。所以我可以将文件从 ec2 实例上传到 S3 存储桶中。

2)Amazon API Gateway + Lambda:我是通过API + Lambda函数直接将本地文件发送到S3存储桶中,方法是调用带有数据的https URL。

但我对这两种方法不满意,因为它们的成本都更高。我必须将文件上传到 S3 存储桶中,并且文件超过 200MB。我不知道我可以优化这个上传过程。视频上传部分对我的应用程序来说是必要的,我应该非常小心地做这部分,而且我必须提高性能和成本效益。

如果有人知道任何解决方案,请与我分享,我将非常有助于我继续我的过程。

提前致谢。

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-ec2 aws-lambda aws-api-gateway


    【解决方案1】:

    您可以使用 aws javascript sdk 和 cognito 身份池直接将文件从您的 React 应用程序上传到 s3,对于优化部分,您可以使用 AWS 分段上传功能分多个部分上传文件我提供了进一步阅读的链接

    AWS javascript upload image example

    cognito identity pools

    multipart upload to S3

    还可以考虑查看为 javascript sdk 制作的 aws 托管上传

    aws managed upload javascript

    【讨论】:

    • 谢谢,瓦尼特。但是 Javascript 在分段上传方法中不可用。它有 Java、.NET、PHP 和 Ruby。那么如何将这种方法导入到我的 React 应用程序中呢?如果我错了,请纠正我。
    • 可以使用rest api进行分段上传docs.aws.amazon.com/AmazonS3/latest/dev/…
    • 是的,但它看起来像终端命令。抱歉,我是分段上传方法的新手,如何在我的反应代码中使用这些命令?
    • 你可以使用托管上传,我已经粘贴了上面的链接,这些不是终端命令,这些是休息请求的例子,你可以使用 fetch() 函数来做出这些请求
    • 谢谢,瓦尼特。如果我只想为经过身份验证的用户访问 s3 存储桶,那么该怎么做?
    【解决方案2】:

    为了绕过 EC2,您可以使用预认证的POST 请求将您的内容从浏览器直接上传到 S3 存储桶。

    【讨论】:

    • 对不起,我不清楚。如何使用我的反应应用程序实现这种方法。有什么想法吗?
    猜你喜欢
    • 2019-03-28
    • 2020-12-24
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 2018-03-25
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多