上传图像数据块到Cloudinary

5
我在前端使用React和React-Router,在后端使用Node+Express,并使用Cloudinary存储我的图像文件。
我遇到的问题是,Cloudinary API方法似乎无法打开/解析包含图像的数据blob。
 { 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));
1个回答

9
Cloudinary的“upload”方法接受以下类型的“file”参数:
  • 本地文件路径(仅由Cloudinary SDK支持)
  • 实际数据(字节数组缓冲区)。例如,在某些Cloudinary SDK中,这可以是数据的IO输入流(例如,File.open(file,“rb”))。
  • 数据URI(Base64编码),最大约为60MB(62,910,000个字符)
  • 现有的公开可访问文件的远程FTP、HTTP或HTTPS URL地址
  • 已列入白名单桶的S3 URL
如果您能够访问Blob数据(而不仅仅是Blob URL),它可以转换为数据URI,该URI将被“file”参数接受到Cloudinary的“upload”方法中。有关将Blob转换为数据URI的帮助,请参见此StackOverflow答案

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接