Google-cloud-node: Storage non-resumable uploads fail

Created on 5 Mar 2017  路  3Comments  路  Source: googleapis/google-cloud-node

Storage non-resumable uploads fail when used with @google-cloud/common 0.12.1. The error message is:

UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Sorry, we cannot connect to Cloud Services without a project ID. You may specify one with an environment variable named "GCLOUD_PROJECT". See https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/authentication for a detailed guide on creating an authenticated connection.

The error message is misleading. The code mistakenly assumes any error thrown util.makeAuthenticatedRequestFactory -> makeAuthenticatedRequest -> onAuthenticated is because of a missing project ID.

The bug that causes the error was introduced by #1990. hasOwnProperty is called on an object that does not have that function. An alternative implementation would be to call Object.hasOwnProperty.call(value, opt) instead of value.hasOwnProperty(opt).

Environment details

  • OS: macOS, Linux
  • Node.js version: 6.x
  • npm version: 3.x
  • google-cloud-node version: 0.47.0

Steps to reproduce

  1. require google-cloud
  2. storage.bucket('my-bucket').upload('file.txt', { resumable: false })
bug storage core

Most helpful comment

Thank you for catching this and debugging it! I just put through a fix: https://github.com/GoogleCloudPlatform/google-cloud-node/commit/a1edaab91a646b47dc4596b38c76c7beb1e510a9 -- does this look good?

All 3 comments

Thank you for catching this and debugging it! I just put through a fix: https://github.com/GoogleCloudPlatform/google-cloud-node/commit/a1edaab91a646b47dc4596b38c76c7beb1e510a9 -- does this look good?

This bug is still active. google-cloud-node version:"0.7.0", default storage.bucket('my-bucket').upload('file.txt') does not upload .Must explicitly add resumable flag for upload storage.bucket('my-bucket').upload('file.txt', { resumable: true }) .

This code works for me with @google-cloud/[email protected]:

var storage = require('@google-cloud/storage')()
var bucket = storage.bucket('stephen-has-a-new-bucket')

bucket.upload('package.json', console.log) // no error

Can you make sure you rm -rf node_modules && npm install --save @google-cloud/storage@^0.7.0 and let me know if it persists? If you can, a reproducible test gist that I can clone, install, and run to see the crash would help.

Was this page helpful?
0 / 5 - 0 ratings