4

この gcloud 例外に詳しい人:

ApiError: Object.parseHttpRespBody (/site/node_modules/gcloud/lib/common/util.js:206) の新しい util.ApiError (/site/node_modules/gcloud/lib/common/util.js:128:10) で見つかりません:30) Object.handleResp (/site/node_modules/gcloud/lib/common/util.js:146:18) で /site/node_modules/gcloud/lib/common/util.js:447:12 で Request.onResponse で[as _callback] (/site/node_modules/gcloud/node_modules/retry-request/index.js:120:7) で Request.self.callback (/site/node_modules/request/request.js:187:22) で Requestリクエストで.emit (events.js:98:17)。(/site/node_modules/request/request.js:1044:10) Request.emit で (events.js:95:17)、IncomingMessage で。(/site/node_modules/request/request.js:965:12) で IncomingMessage.emit (events.js:117:20) で _stream_readable.js:944:16 で process._tickDomainCallback (node.js:492:13) で

それは(もちろん)本番環境でのみ表示され、現在一貫して表示されます。以前は定期的に表示されていましたが、ローカルでは再現できなかったため、gCloud のグリッチであると想定されていました。bucket.uploadこれは、ファイル以外のパラメーターを使用せずに最も単純な gCloud lib メソッドを使用するコードの一部に関連しています...これを実行する現在の関数は次のとおりです。

function uploadToGoogleCloud(filePath, makePublic) {
  var gstorage = gcloud.storage({
    projectId: EXAMPLE_projectId,
    credentials: EXAMPLE_credentials,
  });

  var spBucket = Promise.promisifyAll(gstorage.bucket(EXAMPLE_bucket));

  return spBucket.uploadAsync(filePath).then(function(file) {
    if (makePublic) {
      var fileAsync = Promise.promisifyAll(file);
      return fileAsync.makePublicAsync().then(function() {
        return file;
      });
    }
    return file;
  });
}

フィードバックは大歓迎です。

4

1 に答える 1

0

エラーは少しあいまいですが、私にとっては正しかったです。場合によっては、存在しない BigQuery テーブルに書き込もうとしたときにこのエラーが発生しました (テーブル名として誤って「未定義」を渡しました)。内部で 404 エラーの強制が行われていると思われます。

于 2016-12-17T13:23:04.973 に答える