使用节点获取而不是请求将签名上传到 cloudinary
Signed upload to cloudinary with node-fetch instead of request
我能够使用节点 request module 通过 REST API 上传到 Cloudinary,如下所示:
request.post({
url: `https://api.cloudinary.com/v1_1/dennis/image/upload`,
body: {
file: `data:image/jpeg;base64,${req.body.toString('base64')}`,
api_key: key,
folder: 'dennis',
timestamp: ts,
signature: sig
},
json: true
}, async (err, response, body) => {
if (err) return console.error(err)
res.send({
'public_id': body.public_id,
'secure_url': body.secure_url
})
})
我只使用 cloudinary 上传请求,否则我在整个应用程序中使用 node-fetch。我想使用 node-fetch 进行 cloudinary 上传,但应用与上面工作示例中相同的逻辑会导致神秘的错误消息:'Upload preset must be specified when using unsigned...'
我的节点获取请求如下所示:
let response = await fetch(
`https://api.cloudinary.com/v1_1/dennis/image/upload`,
{
method: 'post',
body: {
file: `data:image/jpeg;base64,${req.body.toString('base64')}`,
api_key: key,
folder: 'dennis',
timestamp: ts,
signature: sig
}
})
if (response.status === 400) return console.error(response)
let body = await response.json()
res.send({
'public_id': body.public_id,
'secure_url': body.secure_url
})
您是否考虑过使用我们的 Node SDK 来实现这一目标?
请查看文档以获取更多信息:https://cloudinary.com/documentation/node_integration
我知道这是一个旧的 post,但是您的获取正文需要在 JSON.stringify({file,api_key, ...})
我现在就这么用,谁需要额外的包:P
let response = await fetch(
URL,
{
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body:JSON.stringify({
file,
api_key,
timestamp,
public_id: "temp/image",
signature
})
})
我能够使用节点 request module 通过 REST API 上传到 Cloudinary,如下所示:
request.post({
url: `https://api.cloudinary.com/v1_1/dennis/image/upload`,
body: {
file: `data:image/jpeg;base64,${req.body.toString('base64')}`,
api_key: key,
folder: 'dennis',
timestamp: ts,
signature: sig
},
json: true
}, async (err, response, body) => {
if (err) return console.error(err)
res.send({
'public_id': body.public_id,
'secure_url': body.secure_url
})
})
我只使用 cloudinary 上传请求,否则我在整个应用程序中使用 node-fetch。我想使用 node-fetch 进行 cloudinary 上传,但应用与上面工作示例中相同的逻辑会导致神秘的错误消息:'Upload preset must be specified when using unsigned...'
我的节点获取请求如下所示:
let response = await fetch(
`https://api.cloudinary.com/v1_1/dennis/image/upload`,
{
method: 'post',
body: {
file: `data:image/jpeg;base64,${req.body.toString('base64')}`,
api_key: key,
folder: 'dennis',
timestamp: ts,
signature: sig
}
})
if (response.status === 400) return console.error(response)
let body = await response.json()
res.send({
'public_id': body.public_id,
'secure_url': body.secure_url
})
您是否考虑过使用我们的 Node SDK 来实现这一目标? 请查看文档以获取更多信息:https://cloudinary.com/documentation/node_integration
我知道这是一个旧的 post,但是您的获取正文需要在 JSON.stringify({file,api_key, ...})
我现在就这么用,谁需要额外的包:P
let response = await fetch(
URL,
{
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body:JSON.stringify({
file,
api_key,
timestamp,
public_id: "temp/image",
signature
})
})