使用multer将文件通过管道传输到Google Cloud Storage的步骤如下:
const multer = require('multer');
const { Storage } = require('@google-cloud/storage');
const storage = new Storage({
projectId: 'your-project-id',
keyFilename: 'path/to/keyfile.json',
});
const multerStorage = multer.memoryStorage();
const upload = multer({
storage: multerStorage,
});
在上面的代码中,你需要将'your-project-id'替换为你的Google Cloud项目的ID,并将'path/to/keyfile.json'替换为你的Google Cloud服务帐号的密钥文件的路径。
app.post('/upload', upload.single('file'), (req, res) => {
// 处理文件上传逻辑
});
在上面的代码中,'/upload'是你的上传文件的路由路径,'file'是你上传文件的字段名。
app.post('/upload', upload.single('file'), (req, res) => {
const file = req.file;
const bucketName = 'your-bucket-name';
const bucket = storage.bucket(bucketName);
const blob = bucket.file(file.originalname);
const blobStream = blob.createWriteStream();
blobStream.on('error', (err) => {
console.error(err);
res.status(500).send('文件上传失败');
});
blobStream.on('finish', () => {
res.status(200).send('文件上传成功');
});
blobStream.end(file.buffer);
});
在上面的代码中,你需要将'your-bucket-name'替换为你的Google Cloud Storage存储桶的名称。
这样,当你的应用程序收到文件上传请求时,它将使用multer将文件存储在内存中,然后使用@google-cloud/storage模块将文件通过管道传输到Google Cloud Storage。上传完成后,你可以根据需要进行进一步的处理或返回适当的响应。
注意:在实际生产环境中,你可能需要对文件进行验证、限制文件大小、处理错误等。上述代码仅提供了一个基本的示例来演示如何使用multer和@google-cloud/storage来实现文件上传到Google Cloud Storage的功能。
领取专属 10元无门槛券
手把手带您无忧上云