【发布时间】:2021-03-09 23:13:11
【问题描述】:
我正在尝试获取签名的 url,然后上传文件,但它返回一个我无法解决的错误,我已经看到其他问题但还没有,我正在尝试使用 png 文件和我在续中指定了它。
const fileD = storage.bucket(bucket).file(file)
const config = {
action: 'write',
expires: '03-17-2025',
ContentType: 'image/png'
}
fileD.getSignedUrl(config, async function Sing(err, url) {
if (!err) {
const options1 = {
method: 'PUT',
url,
headers: {
'cache-control': 'no-cache',
'Content-Type': 'image/png'
},
data: './uploads/test.png'
}
axios(options1)
.then((response) => res.json(response))
.catch((error) => res.json(error.response.data))
}
})
【问题讨论】:
-
我认为您计算机上的日期/时间/时区有误。这将导致此错误消息。
-
我的电脑有今天的日期,如果我请求“读取”图像,它会返回 url,我可以看到图像,但我不能 PUT @JohnHanley
-
如果日期、时间和时区正确,那么下一个可能性是 HTTP PUT 必须匹配包括标头和对象名称的签名请求。唯一的区别是
'cache-control': 'no-cache',。尝试删除它。 -
我得到同样的错误,如果我删除那行,我也在邮递员中尝试它直接发送到签名的 url,它也不起作用。 @约翰汉利
标签: node.js google-cloud-platform google-cloud-storage