我有一个应用程序,其中用户生成二维码。这些生成的二维码以png格式存储在公共文件夹中,以便他可以访问和下载它们。用户可以随心所欲地删除二维码,如果不使用二维码,我不希望二维码留在公共文件夹中。有没有什么办法可以从routes API访问公共文件夹,并让一些函数删除特定二维码的png?谢谢!
发布于 2021-02-20 15:06:14
公用文件夹中的资源是静态生成的,不应在运行时进行修改。在开发中,它之所以有效,是因为开发服务器正在为您变魔术,但它不是一个可伸缩的解决方案。假设你可以让它工作,当你想要扩展你的服务时,你会遇到问题。
假设您运行Next.js web应用程序的多个实例。文件将放入哪个公用文件夹?如果您通过源代码控制对应用程序进行了版本控制,并使用CI/CD将其部署到Vercel或AWS等远程服务,会发生什么情况?推送新版本时,公用文件夹中的图像将发生什么情况?
我建议您使用SaaS解决方案来托管二维码,而不是在运行时尝试将资源上载到公共文件夹。不错的选择是AWS S3或Cloudinary。您可以将镜像临时上传到API路由,然后使用API将镜像上传到您选择的服务。
或者,你可以使用像AWS s3 presigned URLs这样的东西来使上传图片变得更加容易。只需让您的API路由向客户端返回一个预签名的URL,并让客户端直接上传到Amazon的服务器,而无需让您的应用程序充当中间人。
https://stackoverflow.com/questions/66277576
复制相似问题