나는 보았다 무엇 :Node.js에서 GCloud로 파일을 업로드하는 방법은 무엇입니까?
의 생각 :
현재 이미지를 로컬에 저장하고 이미지 경로를 Firebase 실시간 데이터베이스에 저장합니다. GCLUD (비용 절감)에 이미지를 저장하고 싶습니다.
질문 :
어떻게 내가 내 현재 코드 GCLOUD에 업로드를 수정해야?
현재 코드 :이
var express = require("express");
var router = express.Router();
var flash = require("connect-flash");
var firebase = require("firebase");
var multer = require("multer");
var upload = multer({dest:"./public/images/uploads/", limits: {fileSize: 250000}}).single("image");
router.get("/", function(req, res, next){
if (firebase.auth().currentUser == null) {
global.page_name = "login";
res.render("users/login");
}
else {
global.page_name = "upload";
res.render("upload");
}
});
router.post("/", function(req, res, next){
upload(req,res, function (err) {
if (err) {
req.flash("error_msg", "File too large. Max Size: 250KB");
res.redirect("/upload");
return
}
var title = req.body.title;
var section = req.body.section;
// Validation
req.checkBody('title', 'Title is required').notEmpty();
req.checkBody('title', 'Title is too long, max: 50 charachters !').len(0,50);
req.checkBody('section', 'Section is required').notEmpty();
var errors = req.validationErrors();
if(errors){
res.render('upload', {
errors: errors
});
}
else {
if (req.file){
console.log("Uploading file...");
var image = req.file.filename;
var section = req.body.section.toLowerCase();
var IDref = firebase.database().ref("posts/"+section+"/lastID");
IDref.once("value", function(IDsnapshot){
var number = IDsnapshot.val();
var postRef = firebase.database().ref("posts/"+section).push();
var UID = postRef.key;
var post = {
title: req.body.title,
section: req.body.section,
image: image,
author: firebase.auth().currentUser.uid,
section: section,
upvotes: 0,
downvotes: 0,
id: number + 1,
key: UID
}
IDref.set(post.id);
postRef.set(post);
var authoredPost = {
title: req.body.title,
section: section,
}
var userRef = firebase.database().ref("users/"+firebase.auth().currentUser.uid.toString()+"/posts/"+UID.toString());
userRef.set(authoredPost);
});
req.flash("success_msg", "Post Created");
res.redirect("/upload");
}
else {
console.log("No file uploaded");
req.flash("error_msg", "Image is required");
res.redirect("/upload");
}
}
});
});
module.exports = router;
정말 좋은 질문입니다. 지금까지 본 자료를 열거 해 주셔서 감사합니다. 이걸 따라하려고 했니? 있다면, 어떤 문제가 있습니까? https://cloud.google.com/nodejs/getting-started/using-cloud-storage –