【问题标题】:Efficient way to upload images to s3 from android front end or nodejs backend?从android前端或nodejs后端将图像上传到s3的有效方法?
【发布时间】:2020-07-29 12:39:37
【问题描述】:

在我的应用程序中,我正在将图像上传到 AWS S3,并且在将图像上传到 s3 后,图像的 s3 url 正在发布到我的数据库中。压缩图片并根据用户网络访问上传到s3需要很长时间。所以用户必须等到图片上传。

  • 如何减少用户等待时间?
  • 我可以在后台进行压缩和上传吗?或从我们的后端 NodeJS 发布图片。
  • 什么是有效的方法?

【问题讨论】:

    标签: android node.js amazon-s3


    【解决方案1】:

    您可以使用来自 AWS S3 的 Signed URLs。这将为您返回一个链接,该链接可用于直接将您的文件上传到 S3,而无需通过您的服务器。为了处理您的文件,您可以使用 AWS Lamda Functions,这样您的服务器就不会因处理文件而产生任何开销。

    以 NodeJS 为例

    const url = await s3.getSignedUrlPromise('putObject', {
        Bucket: 'YOUR_BUCKET',
        ContentType: 'YOUR_CONTENT_TYPE',
        ACL: 'public',
        Key: 'path/to/yourfile'
    })
    

    上面的例子会返回一个可以发送给用户的 URL,所以用户可以直接从浏览器/安卓应用上传文件到 S3 存储桶。 您可以简单地对 Android 应用返回的 URL 执行 PUT 请求。

    注意:根据需要更改ACL,示例文件中可公开访问

    NodeJS API

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-25
      • 1970-01-01
      • 2021-07-08
      • 2020-07-08
      • 1970-01-01
      • 2017-06-29
      • 2021-03-18
      • 1970-01-01
      相关资源
      最近更新 更多