当 id 包含“/”

问题描述

我正在使用 Node.js 和 aws-sdk 构建 API,因此我有一个 GET 函数可以通过 IDKEY 下载文件>

export const downloadFile = async(req: Request,res: Response) => {
  const params = {
    Bucket: AWS_S3.Bucket,Key: req.params.key
  };

  res.setHeader('Content-disposition','attachment');

  s3.getobject(params)
    .createReadStream()
    .on('error',error => {
      return res.status(500).json({
        message: 'Ocurrio un error al descargar el archivo',error
      });
    }).pipe(res);
}

问题在于键的名称,因为包含 / 并且 Node.js 认为这是一个新的路由。

示例:

const URL_API = 'http://localhost:3000/api';
const KEY = '/mendozarq/images/example.jpg'

const URL = `${URL_API}/download/${KEY}`;

最后我得到了这个错误

Cannot GET /api/download//mendozarq/images/example.jpg

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)