javascript - Sails.js 中使用来自 Vue.js 的sails-hook-uploads 上传多个文件:ETIMEOUT
问题描述
我正在尝试通过补丁将多个文件从我的 Vue 前端上传到我的 Sails 后端。每个产品可能有一个缩略图和多个细节图像。对于来自 Vue 的请求,我设置了一个 FormData 对象,其中包括图像(1 个缩略图,n 个详细图像)
function buildMultipartFormDataObject(data) {
let formData = new FormData()
//append text before images
if(data.thumbnail) formData.append('thumbnail', data.thumbnail)
if(data.images) {
for(let i = 0; i < data.images.length; i++) {
formData.append(`images[${ i }]`, data.images[i])
}
}
return formData
}
在我的风帆控制器中,我正在执行以下操作来上传文件
module.exports = async function update (req, res) {
// ...
let productImagesDirname = require('path').resolve(sails.config.appPath, 'assets/images/products/')
//uploadOne() and upload() are from 'sails-hook-uploads'
let uploadedThumbnail = await sails.uploadOne(req.file('thumbnail'), { dirname: productImagesDirname })
let uploadedImages = await sails.upload(req.file('images'), { dirname: productImagesDirname })
我的缩略图正在按预期上传,但对于我得到的图像
错误:EMAXBUFFER:上游 (
images[0]
) 在插入接收器之前超时。等待 4500 毫秒后仍未使用。您可以通过更改maxTimeToBuffer
选项来配置此超时。
对于每个图像 (image[0] ... image[n]) 和之后
错误:ETIMEOUT:上游 (
images
) 等待文件超时。等待 10000 毫秒后没有发送文件。
即使我只想上传图片(在sails&vue 中注释掉缩略图上传)。很明显,Uploadstream 中缺少images
sails?
Upstream的_files
字段包含一个流对象req.file('thumbnail')
debug: Upstream {
_fatalErrors: [],
_files: [ { stream: [Object], status: 'bufferingOrWriting' } ],
上游的_files
字段req.file('images')
是空的,但我不明白为什么
debug: Upstream {
_fatalErrors: [],
_files: [],
有什么想法吗?
解决方案
推荐阅读
- jenkins - 为什么我的 Jenkins 步骤没有重试,而是在未达到时间限制时抛出超时错误?
- google-cloud-platform - 相当于 GCP 中的 AWS Route53 服务(云 dns?)
- python - 如何在pygame中发射子弹?
- python - 如何用 numpy 构造一个秩数组?(什么是秩数组?)
- sql - 将作为字典列表的 json 转换为 Postgresql 中的列/行格式
- ios - 如何在 SwiftUI 中的两个视图模型之间共享已发布的模型?
- reactjs - 是否有任何替代方法可以避免在服务器端下一个 js 上未定义 localStorage 这个错误?
- python - 我写在一个文件上并读取它但是当我再次运行时似乎
- sql - 时间窗口定义的开始/停止事件中列的总和值
- amazon-web-services - AWS 多站点、一个实例、多个端口