Google云端存储上传失败,出现ApiError

时间:2019-04-21 14:53:45

标签: firebase google-cloud-platform google-cloud-functions google-cloud-storage

我有一个云功能,可以将CSV文件上传到云存储桶。

一段时间后,API开始失败,并显示以下错误。重试后,这似乎在HTTP调用上失败,但是未指定问题的根源。

如果我上传6个文件,通常3-4个成功,其余的会在一段时间后给出此错误。

有人遇到类似的问题吗?

In [1]: import hashlib

In [2]: s=hashlib.sha1()

In [3]: s.update('v3'.encode('utf8'))

In [4]: s.hexdigest()
Out[4]: 'c5e31d5915661de4393e3f1489b00ebc4497dd48'

In [5]: s.update('v3'.encode('utf8'))

In [6]: s.hexdigest()
Out[6]: '478fb161514c3e8b395c9968e042ab214a98d0d8'

我正在使用@ google-cloud / storage nodejs库的2.4.3版本。

试图将云存储版本从1.x升级到2.4.2,现在是2.4.3。

尝试使用gs://

附加存储桶名称

存储桶名称不包含文件名,这不是错误。

这是我代码的要点。

Error: Cannot parse JSON response
    at ApiError (/user_code/node_modules/@google-cloud/storage/node_modules/@google-cloud/common/build/src/util.js:43:9)
    at Util.parseHttpRespBody (/user_code/node_modules/@google-cloud/storage/node_modules/@google-cloud/common/build/src/util.js:185:42)
    at Util.handleResp (/user_code/node_modules/@google-cloud/storage/node_modules/@google-cloud/common/build/src/util.js:134:117)
    at retryRequest (/user_code/node_modules/@google-cloud/storage/node_modules/@google-cloud/common/build/src/util.js:422:22)
    at onResponse (/user_code/node_modules/@google-cloud/storage/node_modules/retry-request/index.js:200:7)
    at /user_code/node_modules/@google-cloud/storage/node_modules/teeny-request/build/src/index.js:158:17
    at process._tickDomainCallback (internal/process/next_tick.js:135:7) message: 'Cannot parse JSON response'

函数最终返回一个promises.push(Promise.all([ filesysRef .outputFile(tmpFilePath, values.join('\n')) .then(() => gcs.bucket(bucketName).upload(tmpFilePath, { destination: filePath } )), filesysRef .outputFile(tmpItemFilePath, items.join('\n')) .then(() => gcs.bucket(bucketName) .upload(tmpItemFilePath, { destination: itemFilePath } )), ]) .then(() => { gcs.bucket(bucketName).file(itemFilePath).exists() .then(() => { hour.ref.remove().then(() => console.log('done removeal')); console.log("after removal")}) // THIS DELETES FROM FIREBASE .catch(() => console.log("File not found in GCS, hence hour not archived")) }, err => console.log(err)) .catch(error => { console.log(error) }) .then(() => filesysRef.unlinkSync(tmpItemFilePath)) .catch(err => console.log(err)) .then(() => filesysRef.unlinkSync(tmpOrderFilePath)) .catch(err => console.log(err)) );

期望云功能能够成功执行并上传文件。

0 个答案:

没有答案