客户端通过Chalice将图像上传到S3存储桶的最佳实践是什么?

里德·杰森(Reed Jessen)

我正在使用Chalice框架创建API服务。我的用户需要上传图像,然后将图像保存到s3存储桶。

用户应如何将图像上载到我的端点,端点收到后应如何处理?

到目前为止,这是我的思考过程:

BUCKET = <bucket_name>    
@app.route('/n_number_search/', methods=['POST'])
    def n_number_search():
        body = app.current_request.raw_body
        s3_client.upload_file(body, BUCKET, UUID_file_name)
        return Response(body=f'upload successful: {}', status_code=200,
                        headers={'Content-Type': 'text/plain'})

这是行不通的。我已经查看了flask中执行此操作的方法,但是语法由于烧瓶具有request.files属性而略有不同

雷纳托·拜罗(Renato Byrro)

一种好的做法是使用预签名的URL这是高级过程:

  1. 您的客户请求允许上传文件
  2. 您的Lambda函数被触发,生成预签名的URL(确保Lambda具有对S3存储桶的必要权限)并响应客户端
  3. 客户端获取预先签名的URL,并将文件直接上传到S3;

优点是:

  • 通过上传两次(一次到Lambda,第二次到S3)来减少网络延迟

  • 降低您的Lambda费用:生成预签名URL比等待上传要快得多,因此要便宜得多;

  • 消除上载失败:Lambda超时为5分钟,如果上载花费更多时间(如果文件太大或您的用户的互联网连接不良,可能会发生),它将失败。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过服务器将S3中的图像流传输到客户端的最佳实践

无法通过 PHP 将图像文件上传到 S3 存储桶

生成缩略图并将其上传到节点中的s3存储桶的最佳方法是什么?

我的Amazon S3存储桶网址是什么?如何将许多文件上传到s3存储桶?

当我使用 AWS CLI 将文件上传到 S3 存储桶时,我是什么用户?

将文件上传到S3存储桶的最佳选择

访问客户端的 AWS S3 存储桶

将文件上传到S3存储桶

将图像从html输入上传到S3存储桶

如何获取将图像上传到s3存储桶的文件名?

将图像上传到s3存储桶节点js

使用Android将图像上传到s3存储桶时的授权问题

使用graphicMagic调整大小后将图像上传到AWS S3存储桶

使用Api Gateway(Lambda函数)将图像上传到S3存储桶

将文件上传到 Amazon s3 - 客户端 javascript

如何从React前端通过Spring后端将文件上传到S3存储桶?

在Amazon S3上安全存储/访问SaaS客户数据的最佳实践是什么?

Amazon S3 - 通过管道将字符串上传到 nodejs 中的 S3 存储桶上

通过Chalice API调用将文件上传到AWS S3

使用 rails、carrierwave-direct 和 jquery 文件上传将文件上传到客户端的 s3

通过使用分段上传API将小于5 MB的文件上传到AWS S3存储桶

将图片上传到Amazon S3服务的最佳节点模块是什么?

如何使用python flask将修改过的图像直接上传到s3存储桶

如何通过特定文件类型限制将S3文件上传到存储桶?

将 SVG 上传到 AWS S3 存储桶并尝试通过 URL 访问它后文档为空

将 Flutter 项目上传到 GitHub 的最佳实践是什么

如何将图像上传到AWS S3并获取图像文件的S3存储桶URL并一次保存到dynamodb-Android

上传到S3存储桶的图像无法在浏览器上查看

从客户端还是服务器上传到S3?