我使用的是 GCloud 版本 0.18.0。在我的开发 PC 上,我实际上在 Google Storage 上下载了非常好的文件。但是,一旦脚本在 Google 计算引擎上运行,下载就会开始并显示已完成,但实际上并未完成。这是一个日志文件,因此当我检查下载的日志文件时,我发现它尚未完成。文件的开头就在那里。
我做了很多搜索,但似乎没有人遇到我的问题。
var gcloud = require('gcloud')({projectId: project_id});
var bucket = google.storage.bucket('logs');
var log_one = {filename: 'test.log'};
bucket.file(log_one.filename).download({destination: './tmp/processing_' + log_one.filename}, function(err) {
if (err.code == 403 || err.code == 404 || err.message) {
console.log(err);
console.log("Error after bucket.file.download");
return;
}
console.log("Downloaded file " + log_one.filename + " completed");
// Do stuff on the log file <-- Which is here the file is incomplete on GCE
});
该实例可以与所有 Google API 通信,并且无论如何,它都会下载日志文件的一部分。
我还尝试设置一个计时器来给完成写入文件或类似内容的时间。没有成功。我从不在论坛上寻求帮助,因为我总是在寻找解决方案。但这一次,我需要帮助。
最佳答案
自 0.18.0 以来,我们遇到了一些与流和完整事件相关的问题。升级到最新版本 0.24.1 可能会神奇地解决该问题。
关于node.js - 使用 NodeJS 在 GCE 上下载 GCloud 存储不完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33713368/