【问题标题】:Remove files from Public folder from client with Next.js using routes api使用路由 api 使用 Next.js 从客户端从公共文件夹中删除文件
【发布时间】:2021-02-19 12:28:02
【问题描述】:

我有一个用户生成二维码的应用程序。这些生成的二维码以 png 格式存储在公共文件夹中,以便他可以访问和下载它们。 用户可以根据需要删除二维码,如果不使用二维码,我不希望二维码留在公共文件夹中。 无论如何可以从路由 API 访问公用文件夹并使用某些功能删除特定 QR 码的 png? 谢谢!

【问题讨论】:

    标签: reactjs next.js


    【解决方案1】:

    公用文件夹中的资源是静态生成的,不应在运行时修改。在开发中,它之所以有效,是因为开发服务器正在为您发挥作用,但它不是一个可扩展的解决方案。假设你可以让它工作,当你想扩展你的服务时你会遇到问题。

    假设您运行 Next.js Web 应用程序的多个实例。文件将进入哪个公用文件夹?如果您通过源代码控制对应用程序进行版本控制,并使用 CI/CD 将其部署到 Vercel 或 AWS 等远程服务,该怎么办。新版本推送时公共文件夹中的图片会发生什么变化?

    我建议不要在运行时尝试将资源上传到公用文件夹,而是使用 SaaS 解决方案来托管 QR 码。不错的选择是AWS S3Cloudinary。您可以将图片临时上传到 API 路由,然后使用 API 将图片上传到您选择的服务。

    或者,您可以使用 AWS s3 presigned URLs 之类的东西来使上传图片更加容易。只需让您的 API 路由向客户端返回一个预签名的 URL,然后让客户端直接上传到 Amazon 的服务器,而无需您的应用程序充当中间人。

    【讨论】:

      猜你喜欢
      • 2020-02-10
      • 2018-04-22
      • 1970-01-01
      • 2016-03-08
      • 2020-05-09
      • 1970-01-01
      • 2016-01-06
      • 2019-09-10
      相关资源
      最近更新 更多