我的代码成功地下载了一些文件,但不是全部。执行只是在中间停止,没有任何错误,最后一个文件可能只是部分下载。它总是无法下载一些文件,即使我改变文件的数量或如果我使用不同的文件。文件大小似乎并不重要。
我尝试了很多方法,但似乎无法在它停止时捕获任何异常或错误。我尝试使用try-catch和process.on事件,但无法捕获任何东西。
我敢肯定几个月前我用这种代码下载了数百个文件没有任何问题。
下面是我当前代码的简化版本。
const { Storage } = require('@google-cloud/storage');
const storage = new Storage({ keyFilename: 'D:/myProject/myKeyFile.json' });
var folder = 'D:/myProject/downloadedFiles';
var bucketName = 'bucket_1';
async function downloadFile(fileName) {
var fullPath = folder + '/' + fileName;
const options = {
destination: fullPath,
};
await storage.bucket(bucketName).file(fileName).download(options);
console.log(`gs://${bucketName}/${fileName} downloaded to ${fullPath}.`);
}
async function downloadFiles() {
var filenames = ['file1', 'file2', 'file3', 'file4', 'file5', 'file6'];
for(var i = 0; i < filenames.length; i++){
await downloadFile(filenames[i], i).catch(console.error);
}
}
downloadFiles().catch(console.error);
1条答案
按热度按时间dfddblmv1#
原来下载只在那台特定的计算机上失败,所以我的代码不是问题所在。我猜是网络相关的,也许是因为前段时间更换了一个网络交换机。