我在尝试将文件上传到Google Cloud Storage时遇到问题。我收到错误ENOENT: no such file or directory, stat 'file.extension'
。我当前的实现如下所示:
const { Storage } = require('@google-cloud/storage');
const storage = new Storage();
const bucketName = 'bucket-name';
exports.uploadFileGCP = async (file, anchorID) => {
const { filename, mimetype, encoding, createReadStream } = await file
await storage.bucket(bucketName).upload(filename, {
destination: `anchor/${anchorID}/` + filename,
predefinedAcl: 'publicRead',
metadata: {
cacheControl: 'no-cache'
},
});
console.log(`${filename} uploaded to ${bucketName}`)
}
在整个文档中,似乎filename
部分中的upload
需要本地计算机上文件的路径。我似乎找不到能够不使用本地路径上传文件的解决方案。有办法吗?
这是我的GraphQL解析器的代码,文件通过该代码:
async function uploadFile(parent, args, ctx, info) {
const google = await uploadFileGCP(args.file, args.anchorID);
console.log(google)
...
}
我觉得我缺少明显的东西,但是无法完全了解发生了什么。多谢您提供协助。
答案 0 :(得分:1)
如@Kolban所说,您应该使用createWriteStream:
bucketName.file(filename).createWriteStream({resumable: false, gzip: true})