【发布时间】:2020-12-25 16:09:12
【问题描述】:
我正在尝试将文件上传到我的谷歌存储桶的特定文件夹中。我用Google documentations写了我的代码
app.js
const multerMid = multer({
storage: multer.memoryStorage(),
limits: {
// no larger than 5mb.
fileSize: 5 * 1024 * 1024,
},
});
app.disable("x-powered-by");
app.use(
multerMid.fields([
{ name: "avatar", maxCount: 1 },
{ name: "gallery", maxCount: 8 },
])
);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.post("/uploads", async (req, res, next) => {
try {
const myFile = req.files;
console.log(myFile);
const imageUrl = await uploadImage(myFile.gallery[0]);
res.status(200).json({
message: "Upload was successful",
data: imageUrl,
});
} catch (error) {
next(error);
}
});
上传图片功能
const uploadImage = (file) =>
new Promise((resolve, reject) => {
const { originalname, buffer } = file;
const blob = bucket.file(originalname.replace(/\s+/g, "_"));
const blobStream = blob.createWriteStream({
destination: "documents/image.png",
resumable: false,
});
blobStream
.on("finish", () => {
const publicUrl = `https://storage.googleapis.com/${bucket.name}/${blob.name}`;
resolve(publicUrl);
})
.on("error", () => {
reject(`Unable to upload image, something went wrong`);
})
.end(buffer);
});
在这里,我将目标设置为documents/image.png,但文件仍存储在存储桶根目录中,而不是文档文件夹中。如何使文件存储在存储桶中的特定文件夹中?
【问题讨论】:
标签: node.js google-cloud-storage blob multer