【发布时间】:2019-04-09 20:31:03
【问题描述】:
很长一段时间以来,我一直在从我的节点 js 服务器将文件上传到谷歌云存储。但有时上传失败。返回的错误信息类似于:
{
reason:"badRequest",
code: 400,
message: "Invalid upload request"
}
它是随机发生的,意味着大约在 25-30 天内发生一次,持续一段时间,然后自动解决。 这有点奇怪,搜索它并没有给出任何解决方案或原因。
针对具有完全相同数据的两个文件并行发送上传请求。 一个上传成功,另一个失败。
使用的代码:
const file = bucket.file(`data/${id}/${version}/abc.json`);
const dataBuffer = Buffer.from(JSON.stringify(dataToUpload));
file.save(dataBuffer, storageConfig)
.then(() => callback(null, true))
.catch(err => callback(err, null));
storageConfig 在哪里
{
"contentType": "application/json",
"cacheControl": "public, max-age=600, s-maxage=3, no-transform"
}
存储的第二个文件名是
const file = bucket.file(`data/${id}/latest/abc.json`);
我找不到任何原因,也无法处理。 它使我的相关系统崩溃,因为它们需要第二个文件。
【问题讨论】:
-
您发送了多少上传请求?而且,当它失败时,它会持续失败一段时间还是只失败一次?我只理解一次。我问这个是因为有一些失败的请求是正常的,即使 400 代表“由于明显的客户端错误,服务器无法或不会处理请求”根据wikipedia
-
嗨,我没有确切的数字,因为它取决于编号。用户选择的项目。但是至少可以有 4 个,最多 38 个上传请求。是的,它在一段时间内一直失败并在几个小时后自动解决,然后它工作了大约一个月并再次失败。它给出的唯一消息是“无效的上传请求”。所以,我没有我可以处理的失败的确切原因。我知道有些失败是正常的,但在我们的例子中,即使是一个失败的请求也会导致问题。它使我们的页面崩溃。
-
@RubénC。以上没有。用于单个请求。 IE。在一个请求中,可以为该实体上传 4 到 38 个文件。
-
我在 GCP。下次发生这种情况时打开support case(如果可能的话),以便我们获得“新鲜”信息并访问以检查您的项目中发生了什么。否则,您可以创建一个private issue。在最后一种情况下,请告诉我。
-
@RubénC。感谢您的答复。我一定会打开一个支持案例,并在此处的评论中让您知道。
标签: node.js google-cloud-platform google-cloud-storage