边缘函数

临时存储

从临时目录读写数据


边缘函数提供临时文件存储功能。您可以在/tmp目录中读写文件。

临时存储会在每次函数调用时重置。这意味着您在调用期间写入的文件只能在同一次调用中读取。

使用场景

以下是临时存储可能有用的几种场景:

  • 解压CSV压缩包后将其作为记录添加到数据库
  • 自定义图像处理工作流(使用magick-wasm

您可以使用后台任务来处理请求之外的耗时文件处理操作。

使用方法

您可以使用Deno文件系统APInode:fs模块来访问/tmp路径。

示例

以下示例展示了如何将用户上传的zip文件写入临时存储以供进一步处理:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Deno.serve(async (req) => { if (req.headers.get('content-type') !== 'application/zip') { return new Response('文件必须是zip格式', { status: 400, }) } const uploadId = crypto.randomUUID() await Deno.writeFile('/tmp/' + uploadId, req.body) // 对写入的zip文件进行处理 return new Response('ok')})

不可用的API

目前不支持用于创建或写入文件的同步API(如Deno.writeFileSyncDeno.mkdirSync)。

但您可以使用读取API的同步版本(如Deno.readFileSync)。

限制

在托管平台上,免费项目最多可向临时存储写入256MB数据,付费项目最多可写入512MB。