Web 应用程序通常需要允许用户上传文件(例如图像)的功能,但很多时候,这是项目中唯一需要应用程序服务器的功能。互联网上成千上万的网站可以从 CDN 基础设施中受益,但目前这些网站托管在速度较慢且安全性较差的基础设施上,原因是产品页面需要消费者图片,工作页面需要上传简历等。在本教程中,您将学习如何使用“无服务器框架”构建安全的无服务器文件上传系统。如果您是无服务器框架的新手,请查看我们的“无服务器框架教程”:第一部分和第二部分。
直接上传至 S3 文件
从性能和可扩展性的角度来看,理想的情况是允许您的用户将文件 沙特阿拉伯电报号码数据库 直接上传到 S3(简单存储服务 - 来自 AWS 的云存储服务)。这将是一个高度可扩展、可靠且快速的解决方案,不会消耗任何应用程序服务器资源。好吧,出于显而易见的安全原因,我们不能将 S3 存储桶敞开供任何人上传任何内容 - 但是如果我们在中间步骤中引入一个 API 端点,我们的客户端应用程序可以调用该端点来请求每次新文件上传的“权限”?API 可以验证请求(请求来自我们的网站吗?它要上传什么类型的文件?),然后函数处理程序
在 requestUploadURL 函数处理程序中,我们需要做的就是获取一个实例AWS.S3并调用它getSignedUrl以生成签名的上传 URL。该getSignedUrl方法接受两个参数:
一个操作,URL 将用于该操作。上传文件的操作是putObject。
params对象,特定于您要执行的操作。该putObject操作需要两个参数:
Bucket:文件将上传到的存储桶的名称。
key:您要上传的文件的名称。您可以根据需要指定一个全新的名称。
putObject您可以在官方文档页面查看该操作可用参数的完整列表。