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));
答
As @Jérôme指出,这种方法是正确的。我忽略了错误的目标路径字符串格式,它是'/ x/y // z'。
显然有2个错误。首先,路径不能以'/'开头,而是以节点(文件/文件夹)的名称开头。
第二个问题('//'部分)有趣的是没有导致API抛出,但导致Firebase递归创建无尽的名为'/'的节点(文件夹)的嵌套结构。
你有没有试过'{destination:newPath}'?因为它正是如此。请参阅[doc](https://googlecloudplatform.github.io/google-cloud-node/#/docs/google-cloud/0.44.0/storage/bucket?method=upload) –