[英]How to read stored file using Multer disk storage option (NodeJs)?
[英]How to write and read file in docker using multer
我正在使用 multer 将上传文件保存到特定目录。 我在本地工作得很好,但是当我使用 docker 构建时,multer 没有将文件写入我的文件夹。
这是我的多重代码:
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, __basedir + "/uploads/")
},
filename: (req, file, cb) => {
cb(null, file.originalname)
}
})
我决定像这样使用 docker-compose 中的卷:
volumes:
- ./uploads:/app/uploads
和错误Error: EACCES: permission denied, open '/app/uploads/Funder Statement Test data.xlsx'
这是我的 dockerFile:
FROM node:fermium-alpine
RUN apk add --no-cache \
chromium \
nss \
freetype \
harfbuzz \
ca-certificates \
ttf-freefont \
nodejs \
yarn
# Tell Puppeteer to skip installing Chrome. We'll be using the installed package.
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
# Puppeteer v10.0.0 works with Chromium 92.
RUN yarn add puppeteer@10.0.0
# Add user so we don't need --no-sandbox.
RUN addgroup -S pptruser && adduser -S -G pptruser pptruser \
&& mkdir -p /home/pptruser/Downloads /app \
&& chown -R pptruser:pptruser /home/pptruser \
&& chown -R pptruser:pptruser /app
# Run everything after as non-privileged user.
USER pptruser
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3030
CMD ["npm", "start"]
知道如何解决我的错误吗?
运行 Docker 容器的用户可能没有写入映射文件夹./uploads
的权限。 确保权限正确。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.