Node.js 将图像blob上载到Cloudinary
我在前端使用react和react路由器,node+express作为后端,cloudinary存储我的图像文件 我遇到的问题是cloudinary api方法似乎无法打开/解析存储图像的数据块Node.js 将图像blob上载到Cloudinary,node.js,express,blob,react-router,cloudinary,Node.js,Express,Blob,React Router,Cloudinary,我在前端使用react和react路由器,node+express作为后端,cloudinary存储我的图像文件 我遇到的问题是cloudinary api方法似乎无法打开/解析存储图像的数据块 { images: { preview: 'blob:http://localhost:8080/19526dcc-b67d-4697-b112-e5480de61d03' } } cloudinary.v2.uploader.upload(body.images.preview, func
{ images: { preview: 'blob:http://localhost:8080/19526dcc-b67d-4697-b112-e5480de61d03' } }
cloudinary.v2.uploader.upload(body.images.preview, function(result) {
console.log(result)
})
错误响应:
{ Error: ENOENT: no such file or directory, open 'blob:http://localhost:8080/e7f30c71-7e06-4c36-801f-49666e9df053'
at Error (native)
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: 'blob:http://localhost:8080/e7f30c71-7e06-4c36-801f-49666e9df053'
}
不确定这是由于react router引起的问题,还是我应该将数据转换为其他格式
路线看起来像:
app.use('/api/', posts);
app.use('/api/', users);
app.use(express.static(staticPath));
app.use('/', express.static(staticPath));
app.use('/posts/*', express.static(staticPath));
app.use('/new/*', express.static(staticPath));
app.use('/validateEmail/*', express.static(staticPath));
Cloudinary的
upload
方法接受文件
参数的以下类型:
- 本地文件路径(仅在Cloudinary SDK中受支持)
- 实际数据(字节数组缓冲区)。例如,在一些Cloudinary SDK中,这可能是数据的IO输入流(例如File.open(File,“rb”))
- 数据URI(Base64编码),最大60MB(62910000个字符)
- 现有可公开访问文件的远程FTP、HTTP或HTTPS URL地址
- 白名单存储桶的S3URL
如果您能够访问blob数据(不仅仅是blob URL),则可以将其转换为数据URI,该URI将被Cloudinary的
上传方法的文件参数接受。有关将blob转换为数据URI的帮助,请参阅。Cloudinary的upload
方法接受以下类型的文件
参数:
- 本地文件路径(仅在Cloudinary SDK中受支持)
- 实际数据(字节数组缓冲区)。例如,在一些Cloudinary SDK中,这可能是数据的IO输入流(例如File.open(File,“rb”))
- 数据URI(Base64编码),最大60MB(62910000个字符)
- 现有可公开访问文件的远程FTP、HTTP或HTTPS URL地址
- 白名单存储桶的S3URL
如果您能够访问blob数据(不仅仅是blob URL),则可以将其转换为数据URI,该URI将被Cloudinary的上传方法的文件参数接受。有关将blob转换为数据URI的帮助,请参阅