临时存储
从临时目录读写数据
边缘函数提供临时文件存储功能。您可以在/tmp
目录中读写文件。
临时存储会在每次函数调用时重置。这意味着您在调用期间写入的文件只能在同一次调用中读取。
使用场景
以下是临时存储可能有用的几种场景:
- 解压CSV压缩包后将其作为记录添加到数据库
- 自定义图像处理工作流(使用
magick-wasm
)
您可以使用后台任务来处理请求之外的耗时文件处理操作。
使用方法
您可以使用Deno文件系统API或node:fs
模块来访问/tmp
路径。
示例
以下示例展示了如何将用户上传的zip文件写入临时存储以供进一步处理:
1234567891011121314Deno.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.writeFileSync
或Deno.mkdirSync
)。
但您可以使用读取API的同步版本(如Deno.readFileSync
)。
限制
在托管平台上,免费项目最多可向临时存储写入256MB数据,付费项目最多可写入512MB。