如何使用Web Service BunJs将图像保存到渲染磁盘

问题描述 投票:0回答:1

我在将图片保存到渲染磁盘时遇到问题。

  1. 我在渲染服务上设置了 BanJs Web 服务器,并使用

    /var/lib/data
    路由器

    打开了磁盘
  2. 然后配置服务器并成功启动一切。我的应用程序.ts:

const STORE_PATH = '/var/lib/data';
const PORT: number = +(process.env.PORT ?? 8080);
const NODE_ENV = process.env.NODE_ENV ?? 'development';

const server = Bun.serve({
  port: PORT,
  async fetch(req) {
    const url = new URL(req.url);
    
    if (req.method !== 'POST') {
      return new Response(null, { status: 405 });
    }

    if (!req.body) {
      return new Response(null, { status: 400 });
    }

    const filePath = `${STORE_PATH}/image.jpg`;
    await Bun.write(filePath, await Bun.readableStreamToBlob(req.body));
    return new Response(null, { status: 201 }
  },
  error() {
    return new Response(null, { status: 500 });
  },
});

console.log(`[${NODE_ENV}] Listening on port ${server.port}`);
  1. 通过 Postman 发送带有文件的 post 请求时,服务器会给出状态 201,但不会将文件保存到渲染磁盘。

问:谁有设置经验,我哪里错了或者问题出在哪里?

webserver render bun
1个回答
0
投票

我也有类似的问题。问题是

/
不是您的根目录。 您可以使用 render 的 shell 来检查路径。

假设您的项目位于:

/opt/render/project/src

您的光盘位于:

/var/lib/data

你需要沿着路径一路爬行:

// assuming your file is in ./src
- const STORE_PATH = '/var/lib/data';
+ const STORE_PATH = '../../../../var/lib/data';

我仍然没有找到在视图文件中设置什么路径的方法。如果您愿意,请告诉我。

<img src="🤷‍♂️"> // ?
© www.soinside.com 2019 - 2024. All rights reserved.