这是我的fileUploadService文件:
import crypto from 'crypto';
var storage = require('@google-cloud/storage')();
uploadFile(req, bucket, next) {
if (!req.file) {
return next();
}
const gcsname = req.file.originalname;
const file = bucket.file(gcsname);
const stream = file.createWriteStream({
metadata: {
contentType: req.file.mimetype
}
});
stream.on('error', (err) => {
req.file.cloudStorageError = err;
next(err);
});
/*stream.on('finish', () => {
req.file.cloudStorageObject = gcsname;
file.makePublic().then(() => {
req.file.cloudStoragePublicUrl = this.getPublicUrl(gcsname);
next();
});
});*/
stream.end(req.file.buffer);
}
我必须只为发件人和收件人提供文件。反正有没有实现这个目标?
答案 0 :(得分:1)
签名网址是为此目的而设计的。
https://cloud.google.com/storage/docs/access-control/signed-urls
此SO问题有一个在node.js中生成签名URL的示例
Create signed URLs for Google Cloud Storage with node.js for direct upload from browser