Showing
4 changed files
with
31 additions
and
6 deletions
... | @@ -153,7 +153,7 @@ export const postEditProfile = async (req, res) => { | ... | @@ -153,7 +153,7 @@ export const postEditProfile = async (req, res) => { |
153 | await User.findByIdAndUpdate(req.user.id, { | 153 | await User.findByIdAndUpdate(req.user.id, { |
154 | name, | 154 | name, |
155 | email, | 155 | email, |
156 | - avatarUrl: file ? file.path : req.user.avatarUrl, | 156 | + avatarUrl: file ? file.location : req.user.avatarUrl, // S3 적용때메 file.path -> file.location 변경(06/24) |
157 | }); | 157 | }); |
158 | res.redirect(routes.me); | 158 | res.redirect(routes.me); |
159 | } catch (error) { | 159 | } catch (error) { | ... | ... |
... | @@ -40,11 +40,11 @@ export const postUpload = async (req, res) => { | ... | @@ -40,11 +40,11 @@ export const postUpload = async (req, res) => { |
40 | // 이는 pug와 db.js를 확인해야하는 듯 하다. | 40 | // 이는 pug와 db.js를 확인해야하는 듯 하다. |
41 | const { | 41 | const { |
42 | body: { title, description }, | 42 | body: { title, description }, |
43 | - file: { path }, | 43 | + file: { location }, // path로 할때는 로컬의 경로. S3는 location |
44 | } = req; // file에 path라는 요소가 있다. | 44 | } = req; // file에 path라는 요소가 있다. |
45 | 45 | ||
46 | const newVideo = await Video.create({ | 46 | const newVideo = await Video.create({ |
47 | - fileUrl: path, | 47 | + fileUrl: location, |
48 | title, | 48 | title, |
49 | description, | 49 | description, |
50 | creator: req.user.id, | 50 | creator: req.user.id, | ... | ... |
1 | +import dotenv from "dotenv"; | ||
1 | import multer from "multer"; | 2 | import multer from "multer"; |
3 | +import multerS3 from "multer-s3"; | ||
4 | +import aws from "aws-sdk"; | ||
2 | import routes from "./routes"; | 5 | import routes from "./routes"; |
3 | 6 | ||
4 | -const multerVideo = multer({ dest: "uploads/videos/" }); | 7 | +dotenv.config(); |
5 | -const multerAvatar = multer({ dest: "uploads/avatars/" }); | 8 | + |
9 | +const s3 = new aws.S3({ | ||
10 | + accessKeyId: process.env.AWS_KEY, | ||
11 | + secretAccessKey: process.env.AWS_PRIVATEE_KEY, | ||
12 | + region: "ap-northeast-2", | ||
13 | +}); | ||
14 | + | ||
15 | +// const multerVideo = multer({ dest: "uploads/videos/" }); | ||
16 | +const multerVideo = multer({ | ||
17 | + storage: multerS3({ | ||
18 | + s3, | ||
19 | + acl: "public-read", | ||
20 | + bucket: "khutube/video", | ||
21 | + }), | ||
22 | +}); | ||
23 | +// const multerAvatar = multer({ dest: "uploads/avatars/" }); | ||
24 | +const multerAvatar = multer({ | ||
25 | + storage: multerS3({ | ||
26 | + s3, | ||
27 | + acl: "public-read", | ||
28 | + bucket: "khutube/avatars", | ||
29 | + }), | ||
30 | +}); | ||
6 | 31 | ||
7 | export const localsMiddleware = (req, res, next) => { | 32 | export const localsMiddleware = (req, res, next) => { |
8 | res.locals.siteName = "my Youtube"; | 33 | res.locals.siteName = "my Youtube"; | ... | ... |
1 | mixin videoPlayer(video={}) | 1 | mixin videoPlayer(video={}) |
2 | .videoPlayer#jsVideoPlayer | 2 | .videoPlayer#jsVideoPlayer |
3 | - video(src=`/${video.src}`) | 3 | + video(src=video.src) |
4 | .videoPlayer__controls | 4 | .videoPlayer__controls |
5 | .videoPlayer__column | 5 | .videoPlayer__column |
6 | span#jsVolumeBtn | 6 | span#jsVolumeBtn | ... | ... |
-
Please register or login to post a comment