Node.js谷歌云存储上传目的地规格

问题描述:

我有一个Node.js服务器,我正在使用谷歌云包上传一些图像文件到Firebase存储Node.js谷歌云存储上传目的地规格

上传本身工作正常,但谷歌云API似乎只能将文件上传到Firebase存储根文件夹。

有什么办法指定远程位置上传图像?

我现在做:

const serviceAccount = require('./serviceAccount.json'); 

const storage = gcloud.storage({ 
    projectId: '*projectId*', 
    credentials: serviceAccount 
}); 

const storageBucket = storage.bucket('*bucket*'); 

storageBucket.upload(localFsPath) 
    .then(data => /* Some stuff */) 
    .catch(err => console.log(err)); 

有没有办法做这样的事情?

storageBucket.upload(path, { destination: 'a/b/c/file.jpg' }) 
    .then(data => /* Some stuff */) 
    .catch(err => console.log(err)); 
+1

你有没有试过'{destination:newPath}'?因为它正是如此。请参阅[doc](https://googlecloudplatform.github.io/google-cloud-node/#/docs/google-cloud/0.44.0/storage/bucket?method=upload) –

As @Jérôme指出,这种方法是正确的。我忽略了错误的目标路径字符串格式,它是'/ x/y // z'。

显然有2个错误。首先,路径不能以'/'开头,而是以节点(文件/文件夹)的名称开头。

第二个问题('//'部分)有趣的是没有导致API抛出,但导致Firebase递归创建无尽的名为'/'的节点(文件夹)的嵌套结构。