将图像 blob 上传到 Cloudinary
upload image blob to Cloudinary
我在前端使用 react 和 react-router,node+express 作为我的后端和 cloudinary 来存储我的图像文件。
我遇到的问题是 cloudinary api 方法似乎无法 open/parse 存储图像的数据 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));
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 的帮助,请参阅 this Whosebug answer。
我在前端使用 react 和 react-router,node+express 作为我的后端和 cloudinary 来存储我的图像文件。
我遇到的问题是 cloudinary api 方法似乎无法 open/parse 存储图像的数据 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));
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 的帮助,请参阅 this Whosebug answer。