App Engine - 上传文件时 tmp/ 文件系统错误
Appengine - tmp/ filesytem error when uploading a file
我遇到 Appengine (GCP) 和通过 Multer 上传文件的问题...
我想在我的数据库中存储一个 base64 图像(无论什么原因)。为此,我尝试将此图像上传到 /tmp
(apparently writable),然后将其编码为 base64,然后将其存储到数据库中。
在本地,它就像一个魅力,但一旦部署,它就不会了:Error: EROFS: read-only file system, mkdir '/srv/tmp'
你有什么线索吗?下面是我的简化代码。
'use strict'
const express = require('express')
const router = new express.Router()
const multer = require('multer')
const upload = multer({ dest: 'tmp/' })
const fs = require('fs')
// APP DEPENDENCIES
const { saveHousing } = require('../models/housing.js')
/////////////////////////////////////
router.post('/', upload.single('upload'), async (req, res) => {
var img = fs.readFileSync(req.file.path).toString('base64')
const housing = { IMG: { MIME: req.file.mimetype, DATA: img } }
await saveHousing(housing)
res.redirect(`/app/dashboard`)
})
我不想使用 Google 云存储来简化事情...
如果将 'tmp/'
更改为 '/tmp/'
是否有效?
根据上面的代码,您似乎使用的是相对路径而不是绝对路径。所以它实际上并没有访问正确的 tmp
目录,而是在你的项目根目录中创建一个新的 tmp
目录。
我遇到 Appengine (GCP) 和通过 Multer 上传文件的问题...
我想在我的数据库中存储一个 base64 图像(无论什么原因)。为此,我尝试将此图像上传到 /tmp
(apparently writable),然后将其编码为 base64,然后将其存储到数据库中。
在本地,它就像一个魅力,但一旦部署,它就不会了:Error: EROFS: read-only file system, mkdir '/srv/tmp'
你有什么线索吗?下面是我的简化代码。
'use strict'
const express = require('express')
const router = new express.Router()
const multer = require('multer')
const upload = multer({ dest: 'tmp/' })
const fs = require('fs')
// APP DEPENDENCIES
const { saveHousing } = require('../models/housing.js')
/////////////////////////////////////
router.post('/', upload.single('upload'), async (req, res) => {
var img = fs.readFileSync(req.file.path).toString('base64')
const housing = { IMG: { MIME: req.file.mimetype, DATA: img } }
await saveHousing(housing)
res.redirect(`/app/dashboard`)
})
我不想使用 Google 云存储来简化事情...
如果将 'tmp/'
更改为 '/tmp/'
是否有效?
根据上面的代码,您似乎使用的是相对路径而不是绝对路径。所以它实际上并没有访问正确的 tmp
目录,而是在你的项目根目录中创建一个新的 tmp
目录。