Toggle navigation
Toggle navigation
This project
Loading...
Sign in
2020-1-CloudComputing
/
D_Team_Khuloud
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
박기범
2020-06-04 19:04:42 +0900
Browse Files
Options
Browse Files
Download
Plain Diff
Commit
cf94c6a38239b99bc6c4a5798c8a600644da33bd
cf94c6a3
2 parents
e7a684f1
4997a81f
Merge branch 'new_file'
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
508 additions
and
447 deletions
backend/package-lock.json
backend/package.json
backend/routes/file/deleteFile.js
backend/routes/file/downloadFile.js
backend/routes/file/files.js
backend/routes/file/uploadFile.js
backend/routes/modules/awsconfig.json
backend/routes/modules/s3/download/kbpark9898/test.txt
backend/routes/modules/s3/download/kbpark9898/test4.txt
backend/routes/modules/s3/download/kbpark9898/test6.txt
backend/routes/modules/s3/download/shlee/test100(1).txt
backend/routes/modules/s3/s3.js
front-end/package-lock.json
front-end/src/api/index.js
front-end/src/components/FileList.vue
backend/package-lock.json
View file @
cf94c6a
...
...
@@ -4,17 +4,24 @@
"lockfileVersion"
:
1
,
"requires"
:
true
,
"dependencies"
:
{
"@
types/babel-types
"
:
{
"version"
:
"7.
0.7
"
,
"resolved"
:
"https://registry.npmjs.org/@
types/babel-types/-/babel-types-7.0.7
.tgz"
,
"integrity"
:
"sha512-
dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ
=="
"@
babel/helper-validator-identifier
"
:
{
"version"
:
"7.
10.1
"
,
"resolved"
:
"https://registry.npmjs.org/@
babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1
.tgz"
,
"integrity"
:
"sha512-
5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw
=="
},
"@types/babylon"
:
{
"version"
:
"6.16.5"
,
"resolved"
:
"https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz"
,
"integrity"
:
"sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w=="
,
"@babel/parser"
:
{
"version"
:
"7.10.2"
,
"resolved"
:
"https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz"
,
"integrity"
:
"sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ=="
},
"@babel/types"
:
{
"version"
:
"7.10.2"
,
"resolved"
:
"https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz"
,
"integrity"
:
"sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng=="
,
"requires"
:
{
"@types/babel-types"
:
"*"
"@babel/helper-validator-identifier"
:
"^7.10.1"
,
"lodash"
:
"^4.17.13"
,
"to-fast-properties"
:
"^2.0.0"
}
},
"accepts"
:
{
...
...
@@ -27,24 +34,9 @@
}
},
"acorn"
:
{
"version"
:
"3.3.0"
,
"resolved"
:
"https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz"
,
"integrity"
:
"sha1-ReN/s56No/JbruP/U2niu18iAXo="
},
"acorn-globals"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz"
,
"integrity"
:
"sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8="
,
"requires"
:
{
"acorn"
:
"^4.0.4"
},
"dependencies"
:
{
"acorn"
:
{
"version"
:
"4.0.13"
,
"resolved"
:
"https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz"
,
"integrity"
:
"sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
}
}
"version"
:
"7.2.0"
,
"resolved"
:
"https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz"
,
"integrity"
:
"sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ=="
},
"ajv"
:
{
"version"
:
"6.12.2"
,
...
...
@@ -57,21 +49,6 @@
"uri-js"
:
"^4.2.2"
}
},
"align-text"
:
{
"version"
:
"0.1.4"
,
"resolved"
:
"https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz"
,
"integrity"
:
"sha1-DNkKVhCT810KmSVsIrcGlDP60Rc="
,
"requires"
:
{
"kind-of"
:
"^3.0.2"
,
"longest"
:
"^1.0.1"
,
"repeat-string"
:
"^1.5.2"
}
},
"amdefine"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
,
"integrity"
:
"sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
},
"ansi-styles"
:
{
"version"
:
"3.2.1"
,
"resolved"
:
"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
,
...
...
@@ -98,6 +75,11 @@
"safer-buffer"
:
"~2.1.0"
}
},
"assert-never"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz"
,
"integrity"
:
"sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw=="
},
"assert-plus"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
,
...
...
@@ -139,31 +121,14 @@
"resolved"
:
"https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz"
,
"integrity"
:
"sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA=="
},
"babel-runtime"
:
{
"version"
:
"6.26.0"
,
"resolved"
:
"https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
,
"integrity"
:
"sha1-llxwWGaOgrVde/4E/yM3vItWR/4="
,
"requires"
:
{
"core-js"
:
"^2.4.0"
,
"regenerator-runtime"
:
"^0.11.0"
}
},
"babel-types"
:
{
"version"
:
"6.26.0"
,
"resolved"
:
"https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"
,
"integrity"
:
"sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc="
,
"babel-walk"
:
{
"version"
:
"3.0.0-canary-5"
,
"resolved"
:
"https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz"
,
"integrity"
:
"sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw=="
,
"requires"
:
{
"babel-runtime"
:
"^6.26.0"
,
"esutils"
:
"^2.0.2"
,
"lodash"
:
"^4.17.4"
,
"to-fast-properties"
:
"^1.0.3"
"@babel/types"
:
"^7.9.6"
}
},
"babylon"
:
{
"version"
:
"6.18.0"
,
"resolved"
:
"https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz"
,
"integrity"
:
"sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
},
"balanced-match"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
,
...
...
@@ -236,25 +201,11 @@
"resolved"
:
"https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz"
,
"integrity"
:
"sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
},
"camelcase"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz"
,
"integrity"
:
"sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
},
"caseless"
:
{
"version"
:
"0.12.0"
,
"resolved"
:
"https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
,
"integrity"
:
"sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
},
"center-align"
:
{
"version"
:
"0.1.3"
,
"resolved"
:
"https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz"
,
"integrity"
:
"sha1-qg0yYptu6XIgBBHL1EYckHvCt60="
,
"requires"
:
{
"align-text"
:
"^0.1.3"
,
"lazy-cache"
:
"^1.0.3"
}
},
"chalk"
:
{
"version"
:
"2.4.2"
,
"resolved"
:
"https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
,
...
...
@@ -273,25 +224,6 @@
"is-regex"
:
"^1.0.3"
}
},
"clean-css"
:
{
"version"
:
"3.4.28"
,
"resolved"
:
"https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz"
,
"integrity"
:
"sha1-vxlF6C/ICPVWlebd6uwBQA79A/8="
,
"requires"
:
{
"commander"
:
"2.8.x"
,
"source-map"
:
"0.4.x"
}
},
"cliui"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz"
,
"integrity"
:
"sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE="
,
"requires"
:
{
"center-align"
:
"^0.1.1"
,
"right-align"
:
"^0.1.1"
,
"wordwrap"
:
"0.0.2"
}
},
"color-convert"
:
{
"version"
:
"1.9.3"
,
"resolved"
:
"https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
,
...
...
@@ -313,28 +245,18 @@
"delayed-stream"
:
"~1.0.0"
}
},
"commander"
:
{
"version"
:
"2.8.1"
,
"resolved"
:
"https://registry.npmjs.org/commander/-/commander-2.8.1.tgz"
,
"integrity"
:
"sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ="
,
"requires"
:
{
"graceful-readlink"
:
">= 1.0.0"
}
},
"concat-map"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
,
"integrity"
:
"sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"constantinople"
:
{
"version"
:
"
3.1.2
"
,
"resolved"
:
"https://registry.npmjs.org/constantinople/-/constantinople-
3.1.2
.tgz"
,
"integrity"
:
"sha512-
yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZou
w=="
,
"version"
:
"
4.0.1
"
,
"resolved"
:
"https://registry.npmjs.org/constantinople/-/constantinople-
4.0.1
.tgz"
,
"integrity"
:
"sha512-
vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZI
w=="
,
"requires"
:
{
"@types/babel-types"
:
"^7.0.0"
,
"@types/babylon"
:
"^6.16.2"
,
"babel-types"
:
"^6.26.0"
,
"babylon"
:
"^6.18.0"
"@babel/parser"
:
"^7.6.0"
,
"@babel/types"
:
"^7.6.1"
}
},
"content-disposition"
:
{
...
...
@@ -366,11 +288,6 @@
"resolved"
:
"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
,
"integrity"
:
"sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"core-js"
:
{
"version"
:
"2.6.11"
,
"resolved"
:
"https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz"
,
"integrity"
:
"sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
},
"core-util-is"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
,
...
...
@@ -397,11 +314,6 @@
"ms"
:
"2.0.0"
}
},
"decamelize"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
,
"integrity"
:
"sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
},
"delayed-stream"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
,
...
...
@@ -459,11 +371,6 @@
"resolved"
:
"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
,
"integrity"
:
"sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"esutils"
:
{
"version"
:
"2.0.3"
,
"resolved"
:
"https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
,
"integrity"
:
"sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
},
"etag"
:
{
"version"
:
"1.8.1"
,
"resolved"
:
"https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
,
...
...
@@ -630,11 +537,6 @@
"assert-plus"
:
"^1.0.0"
}
},
"graceful-readlink"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
,
"integrity"
:
"sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
},
"har-schema"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"
,
...
...
@@ -706,25 +608,13 @@
"resolved"
:
"https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
,
"integrity"
:
"sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
},
"is-buffer"
:
{
"version"
:
"1.1.6"
,
"resolved"
:
"https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
,
"integrity"
:
"sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
},
"is-expression"
:
{
"version"
:
"
3
.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-expression/-/is-expression-
3
.0.0.tgz"
,
"integrity"
:
"sha
1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8
="
,
"version"
:
"
4
.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-expression/-/is-expression-
4
.0.0.tgz"
,
"integrity"
:
"sha
512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A=
="
,
"requires"
:
{
"acorn"
:
"~4.0.2"
,
"object-assign"
:
"^4.0.1"
},
"dependencies"
:
{
"acorn"
:
{
"version"
:
"4.0.13"
,
"resolved"
:
"https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz"
,
"integrity"
:
"sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
}
"acorn"
:
"^7.1.1"
,
"object-assign"
:
"^4.1.1"
}
},
"is-promise"
:
{
...
...
@@ -816,29 +706,11 @@
"promise"
:
"^7.0.1"
}
},
"kind-of"
:
{
"version"
:
"3.2.2"
,
"resolved"
:
"https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
,
"integrity"
:
"sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ="
,
"requires"
:
{
"is-buffer"
:
"^1.1.5"
}
},
"lazy-cache"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz"
,
"integrity"
:
"sha1-odePw6UEdMuAhF07O24dpJpEbo4="
},
"lodash"
:
{
"version"
:
"4.17.15"
,
"resolved"
:
"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz"
,
"integrity"
:
"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
},
"longest"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/longest/-/longest-1.0.1.tgz"
,
"integrity"
:
"sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
},
"media-typer"
:
{
"version"
:
"0.3.0"
,
"resolved"
:
"https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
,
...
...
@@ -1008,118 +880,116 @@
"integrity"
:
"sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
},
"pug"
:
{
"version"
:
"
2.0.0-beta11
"
,
"resolved"
:
"https://registry.npmjs.org/pug/-/pug-
2.0.0-beta11
.tgz"
,
"integrity"
:
"sha
1-Favmr1AEx+LPRhPksnRlyVRrXwE
="
,
"version"
:
"
3.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/pug/-/pug-
3.0.0
.tgz"
,
"integrity"
:
"sha
512-inmsJyFBSHZaiGLaguoFgJGViX0If6AcfcElimvwj9perqjDpUpw79UIEDZbWFmoGVidh08aoE+e8tVkjVJPCw=
="
,
"requires"
:
{
"pug-code-gen"
:
"^
1.1.1
"
,
"pug-filters"
:
"^
2.1.1
"
,
"pug-lexer"
:
"^
3
.0.0"
,
"pug-linker"
:
"^
2.0.2
"
,
"pug-load"
:
"^
2.0.5
"
,
"pug-parser"
:
"^
2.0.2
"
,
"pug-runtime"
:
"^
2.0.3
"
,
"pug-strip-comments"
:
"^
1.0.2
"
"pug-code-gen"
:
"^
3.0.0
"
,
"pug-filters"
:
"^
4.0.0
"
,
"pug-lexer"
:
"^
5
.0.0"
,
"pug-linker"
:
"^
4.0.0
"
,
"pug-load"
:
"^
3.0.0
"
,
"pug-parser"
:
"^
6.0.0
"
,
"pug-runtime"
:
"^
3.0.0
"
,
"pug-strip-comments"
:
"^
2.0.0
"
}
},
"pug-attrs"
:
{
"version"
:
"
2.0.4
"
,
"resolved"
:
"https://registry.npmjs.org/pug-attrs/-/pug-attrs-
2.0.4
.tgz"
,
"integrity"
:
"sha512-
TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ
=="
,
"version"
:
"
3.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/pug-attrs/-/pug-attrs-
3.0.0
.tgz"
,
"integrity"
:
"sha512-
azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA
=="
,
"requires"
:
{
"constantinople"
:
"^
3
.0.1"
,
"js-stringify"
:
"^1.0.
1
"
,
"pug-runtime"
:
"^
2.0.5
"
"constantinople"
:
"^
4
.0.1"
,
"js-stringify"
:
"^1.0.
2
"
,
"pug-runtime"
:
"^
3.0.0
"
}
},
"pug-code-gen"
:
{
"version"
:
"
1.1
.1"
,
"resolved"
:
"https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-
1.1
.1.tgz"
,
"integrity"
:
"sha
1-HPcnRO8qA56uajNAyqoRBYcSWOg
="
,
"version"
:
"
3.0
.1"
,
"resolved"
:
"https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-
3.0
.1.tgz"
,
"integrity"
:
"sha
512-xJIGvmXTQlkJllq6hqxxjRWcay2F9CU69TuAuiVZgHK0afOhG5txrQOcZyaPHBvSWCU/QQOqEp5XCH94rRZpBQ=
="
,
"requires"
:
{
"constantinople"
:
"^
3
.0.1"
,
"constantinople"
:
"^
4
.0.1"
,
"doctypes"
:
"^1.1.0"
,
"js-stringify"
:
"^1.0.
1
"
,
"pug-attrs"
:
"^
2.0.2
"
,
"pug-error"
:
"^
1.3.2
"
,
"pug-runtime"
:
"^
2.0.3
"
,
"void-elements"
:
"^
2.0.1
"
,
"with"
:
"^
5
.0.0"
"js-stringify"
:
"^1.0.
2
"
,
"pug-attrs"
:
"^
3.0.0
"
,
"pug-error"
:
"^
2.0.0
"
,
"pug-runtime"
:
"^
3.0.0
"
,
"void-elements"
:
"^
3.1.0
"
,
"with"
:
"^
7
.0.0"
}
},
"pug-error"
:
{
"version"
:
"
1.3.3
"
,
"resolved"
:
"https://registry.npmjs.org/pug-error/-/pug-error-
1.3.3
.tgz"
,
"integrity"
:
"sha512-
qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWi
Q=="
"version"
:
"
2.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/pug-error/-/pug-error-
2.0.0
.tgz"
,
"integrity"
:
"sha512-
sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btay
Q=="
},
"pug-filters"
:
{
"version"
:
"
2.1.5
"
,
"resolved"
:
"https://registry.npmjs.org/pug-filters/-/pug-filters-
2.1.5
.tgz"
,
"integrity"
:
"sha512-
xkw71KtrC4sxleKiq+cUlQzsiLn8pM5+vCgkChW2E6oNOzaqTSIBKIQ5cl4oheuDzvJYCTSYzRaVinMUrV4YLQ
=="
,
"version"
:
"
4.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/pug-filters/-/pug-filters-
4.0.0
.tgz"
,
"integrity"
:
"sha512-
yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A
=="
,
"requires"
:
{
"clean-css"
:
"^3.3.0"
,
"constantinople"
:
"^3.0.1"
,
"constantinople"
:
"^4.0.1"
,
"jstransformer"
:
"1.0.0"
,
"pug-error"
:
"^1.3.2"
,
"pug-walk"
:
"^1.1.5"
,
"resolve"
:
"^1.1.6"
,
"uglify-js"
:
"^2.6.1"
"pug-error"
:
"^2.0.0"
,
"pug-walk"
:
"^2.0.0"
,
"resolve"
:
"^1.15.1"
}
},
"pug-lexer"
:
{
"version"
:
"
3.1
.0"
,
"resolved"
:
"https://registry.npmjs.org/pug-lexer/-/pug-lexer-
3.1
.0.tgz"
,
"integrity"
:
"sha
1-/QhzdtSmdbT1n4/vQiiDQ06VgaI
="
,
"version"
:
"
5.0
.0"
,
"resolved"
:
"https://registry.npmjs.org/pug-lexer/-/pug-lexer-
5.0
.0.tgz"
,
"integrity"
:
"sha
512-52xMk8nNpuyQ/M2wjZBN5gXQLIylaGkAoTk5Y1pBhVqaopaoj8Z0iVzpbFZAqitL4RHNVDZRnJDsqEYe99Ti0A=
="
,
"requires"
:
{
"character-parser"
:
"^2.
1.1
"
,
"is-expression"
:
"^
3
.0.0"
,
"pug-error"
:
"^
1.3.2
"
"character-parser"
:
"^2.
2.0
"
,
"is-expression"
:
"^
4
.0.0"
,
"pug-error"
:
"^
2.0.0
"
}
},
"pug-linker"
:
{
"version"
:
"
2.0.3
"
,
"resolved"
:
"https://registry.npmjs.org/pug-linker/-/pug-linker-
2.0.3
.tgz"
,
"integrity"
:
"sha
1-szH/olc33eacEntWwQ/xf652bco
="
,
"version"
:
"
4.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/pug-linker/-/pug-linker-
4.0.0
.tgz"
,
"integrity"
:
"sha
512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw=
="
,
"requires"
:
{
"pug-error"
:
"^
1.3.2
"
,
"pug-walk"
:
"^
1.1.2
"
"pug-error"
:
"^
2.0.0
"
,
"pug-walk"
:
"^
2.0.0
"
}
},
"pug-load"
:
{
"version"
:
"
2.0.12
"
,
"resolved"
:
"https://registry.npmjs.org/pug-load/-/pug-load-
2.0.12
.tgz"
,
"integrity"
:
"sha512-
UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg
=="
,
"version"
:
"
3.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/pug-load/-/pug-load-
3.0.0
.tgz"
,
"integrity"
:
"sha512-
OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ
=="
,
"requires"
:
{
"object-assign"
:
"^4.1.
0
"
,
"pug-walk"
:
"^
1.1.8
"
"object-assign"
:
"^4.1.
1
"
,
"pug-walk"
:
"^
2.0.0
"
}
},
"pug-parser"
:
{
"version"
:
"
2.0.2
"
,
"resolved"
:
"https://registry.npmjs.org/pug-parser/-/pug-parser-
2.0.2
.tgz"
,
"integrity"
:
"sha
1-U6aAz9BQOdywwn0CkJS8SnkmibA
="
,
"version"
:
"
6.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/pug-parser/-/pug-parser-
6.0.0
.tgz"
,
"integrity"
:
"sha
512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw=
="
,
"requires"
:
{
"pug-error"
:
"^
1.3.2
"
,
"token-stream"
:
"
0.0.1
"
"pug-error"
:
"^
2.0.0
"
,
"token-stream"
:
"
1.0.0
"
}
},
"pug-runtime"
:
{
"version"
:
"
2.0.5
"
,
"resolved"
:
"https://registry.npmjs.org/pug-runtime/-/pug-runtime-
2.0.5
.tgz"
,
"integrity"
:
"sha512-
P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw
=="
"version"
:
"
3.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/pug-runtime/-/pug-runtime-
3.0.0
.tgz"
,
"integrity"
:
"sha512-
GoEPcmQNnaTsePEdVA05bDpY+Op5VLHKayg08AQiqJBWU/yIaywEYv7TetC5dEQS3fzBBoyb2InDcZEg3mPTIA
=="
},
"pug-strip-comments"
:
{
"version"
:
"
1.0.4
"
,
"resolved"
:
"https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-
1.0.4
.tgz"
,
"integrity"
:
"sha512-
i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw
=="
,
"version"
:
"
2.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-
2.0.0
.tgz"
,
"integrity"
:
"sha512-
zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ
=="
,
"requires"
:
{
"pug-error"
:
"^
1.3.3
"
"pug-error"
:
"^
2.0.0
"
}
},
"pug-walk"
:
{
"version"
:
"
1.1.8
"
,
"resolved"
:
"https://registry.npmjs.org/pug-walk/-/pug-walk-
1.1.8
.tgz"
,
"integrity"
:
"sha512-
GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA
=="
"version"
:
"
2.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/pug-walk/-/pug-walk-
2.0.0
.tgz"
,
"integrity"
:
"sha512-
yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ
=="
},
"punycode"
:
{
"version"
:
"1.3.2"
,
...
...
@@ -1171,16 +1041,6 @@
"util-deprecate"
:
"~1.0.1"
}
},
"regenerator-runtime"
:
{
"version"
:
"0.11.1"
,
"resolved"
:
"https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz"
,
"integrity"
:
"sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
},
"repeat-string"
:
{
"version"
:
"1.6.1"
,
"resolved"
:
"https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
,
"integrity"
:
"sha1-jcrkcOHIirwtYA//Sndihtp15jc="
},
"request"
:
{
"version"
:
"2.88.2"
,
"resolved"
:
"https://registry.npmjs.org/request/-/request-2.88.2.tgz"
,
...
...
@@ -1216,14 +1076,6 @@
"path-parse"
:
"^1.0.6"
}
},
"right-align"
:
{
"version"
:
"0.1.3"
,
"resolved"
:
"https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz"
,
"integrity"
:
"sha1-YTObci/mo1FWiSENJOFMlhSGE+8="
,
"requires"
:
{
"align-text"
:
"^0.1.1"
}
},
"safe-buffer"
:
{
"version"
:
"5.1.2"
,
"resolved"
:
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
,
...
...
@@ -1275,14 +1127,6 @@
"resolved"
:
"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz"
,
"integrity"
:
"sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
},
"source-map"
:
{
"version"
:
"0.4.4"
,
"resolved"
:
"https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz"
,
"integrity"
:
"sha1-66T12pwNyZneaAMti092FzZSA2s="
,
"requires"
:
{
"amdefine"
:
">=0.0.4"
}
},
"sqlstring"
:
{
"version"
:
"2.3.1"
,
"resolved"
:
"https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz"
,
...
...
@@ -1326,14 +1170,14 @@
}
},
"to-fast-properties"
:
{
"version"
:
"
1.0.3
"
,
"resolved"
:
"https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-
1.0.3
.tgz"
,
"integrity"
:
"sha1-
uDVx+k2MJbguIxsG46MFXeTKGkc
="
"version"
:
"
2.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-
2.0.0
.tgz"
,
"integrity"
:
"sha1-
3F5pjL0HkmW8c+A3doGk5Og/YW4
="
},
"token-stream"
:
{
"version"
:
"
0.0.1
"
,
"resolved"
:
"https://registry.npmjs.org/token-stream/-/token-stream-
0.0.1
.tgz"
,
"integrity"
:
"sha1-z
u78cXp2xDFvEm0LnbqlXX598Bo
="
"version"
:
"
1.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/token-stream/-/token-stream-
1.0.0
.tgz"
,
"integrity"
:
"sha1-z
CAOqyYT9BZtJ/+a/HylbUnfbrQ
="
},
"tough-cookie"
:
{
"version"
:
"2.5.0"
,
...
...
@@ -1373,29 +1217,6 @@
"mime-types"
:
"~2.1.24"
}
},
"uglify-js"
:
{
"version"
:
"2.8.29"
,
"resolved"
:
"https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz"
,
"integrity"
:
"sha1-KcVzMUgFe7Th913zW3qcty5qWd0="
,
"requires"
:
{
"source-map"
:
"~0.5.1"
,
"uglify-to-browserify"
:
"~1.0.0"
,
"yargs"
:
"~3.10.0"
},
"dependencies"
:
{
"source-map"
:
{
"version"
:
"0.5.7"
,
"resolved"
:
"https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
,
"integrity"
:
"sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
}
}
},
"uglify-to-browserify"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz"
,
"integrity"
:
"sha1-bgkk1r2mta/jSeOabWMoUKD4grc="
,
"optional"
:
true
},
"uid-safe"
:
{
"version"
:
"2.1.5"
,
"resolved"
:
"https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz"
,
...
...
@@ -1464,29 +1285,21 @@
}
},
"void-elements"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz"
,
"integrity"
:
"sha1-wGavtYK7HLQSjWDqkjkulNXp2+w="
},
"window-size"
:
{
"version"
:
"0.1.0"
,
"resolved"
:
"https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz"
,
"integrity"
:
"sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz"
,
"integrity"
:
"sha1-YU9/v42AHwu18GYfWy9XhXUOTwk="
},
"with"
:
{
"version"
:
"
5.1.1
"
,
"resolved"
:
"https://registry.npmjs.org/with/-/with-
5.1.1
.tgz"
,
"integrity"
:
"sha
1-+k2qktrzLE6pTtRTyB8EaGtXXf4
="
,
"version"
:
"
7.0.2
"
,
"resolved"
:
"https://registry.npmjs.org/with/-/with-
7.0.2
.tgz"
,
"integrity"
:
"sha
512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w=
="
,
"requires"
:
{
"acorn"
:
"^3.1.0"
,
"acorn-globals"
:
"^3.0.0"
"@babel/parser"
:
"^7.9.6"
,
"@babel/types"
:
"^7.9.6"
,
"assert-never"
:
"^1.2.1"
,
"babel-walk"
:
"3.0.0-canary-5"
}
},
"wordwrap"
:
{
"version"
:
"0.0.2"
,
"resolved"
:
"https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"
,
"integrity"
:
"sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
},
"xml2js"
:
{
"version"
:
"0.4.19"
,
"resolved"
:
"https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz"
,
...
...
@@ -1500,17 +1313,6 @@
"version"
:
"9.0.7"
,
"resolved"
:
"https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz"
,
"integrity"
:
"sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="
},
"yargs"
:
{
"version"
:
"3.10.0"
,
"resolved"
:
"https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz"
,
"integrity"
:
"sha1-9+572FfdfB0tOMDnTvvWgdFDH9E="
,
"requires"
:
{
"camelcase"
:
"^1.0.2"
,
"cliui"
:
"^2.1.0"
,
"decamelize"
:
"^1.0.0"
,
"window-size"
:
"0.1.0"
}
}
}
}
...
...
backend/package.json
View file @
cf94c6a
...
...
@@ -19,7 +19,7 @@
"morgan"
:
"~1.9.1"
,
"mysql"
:
"^2.18.1"
,
"passport"
:
"^0.4.1"
,
"pug"
:
"
2.0.0-beta11
"
,
"pug"
:
"
^3.0.0
"
,
"request"
:
"^2.88.2"
}
}
...
...
backend/routes/file/deleteFile.js
View file @
cf94c6a
...
...
@@ -8,37 +8,32 @@ var S3 = require('../modules/s3/s3');
// /file/delete/:name
router
.
get
(
'/:name'
,
function
(
req
,
res
)
{
var
user_id
=
req
.
session
.
user_id
;
var
file_name
=
req
.
params
.
name
;
var
user_id
=
req
.
query
.
id
;
var
curPath
=
req
.
query
.
cur
;
var
sourceFile
=
req
.
params
.
name
;
var
targetPath
=
'trashcan'
;
var
paths
=
sourceFile
.
split
(
'/'
);
var
index
=
sourceFile
.
length
-
(
paths
[
paths
.
length
-
1
].
length
+
1
);
var
file_name
=
paths
[
paths
.
length
-
1
];
var
location
=
sourceFile
.
substring
(
6
+
user_id
.
length
,
index
);
var
sourceFile
=
curPath
.
substring
(
1
)
+
file_name
;
var
sql1
=
'DELETE FROM files WHERE file_name = (?) AND location=(?) AND user_Id = (?)'
;
var
sql2
=
'INSERT INTO trashcan (trash_name, location, user_Id) VALUES (?, ?, ?)'
;
connection
.
query
(
sql1
,
[
file_name
,
location
,
user_id
],
function
(
err
)
{
connection
.
query
(
sql1
,
[
file_name
,
curPath
,
user_id
],
function
(
err
)
{
if
(
err
)
{
console
.
log
(
'delete db error'
);
throw
err
;
res
.
send
({
erorr
:
'db delete error'
})
;
}
else
{
connection
.
query
(
sql2
,
[
file_name
,
location
,
user_id
],
function
(
err
)
{
connection
.
query
(
sql2
,
[
file_name
,
'/trashcan'
+
curPath
,
user_id
],
function
(
err
)
{
if
(
err
)
{
console
.
log
(
'insert in trashcan db error'
);
throw
err
;
res
.
send
({
error
:
'db insert error'
})
;
}
else
{
// /drive/user_id/sourceFile --> /drive/user_id/trashcan/sourceFile
S3
.
moveFile
(
S3
.
BUCKET_NAME
,
user_id
,
sourceFile
,
targetPath
,
function
(
result
)
{
S3
.
moveFile
2
(
S3
.
BUCKET_NAME
,
user_id
,
sourceFile
,
targetPath
,
function
(
result
)
{
if
(
result
)
{
console
.
log
(
"file move to trashcan success"
);
res
.
send
(
"Upload Success"
);
res
.
send
(
"move to trashcan success"
);
}
})
}
...
...
backend/routes/file/downloadFile.js
View file @
cf94c6a
...
...
@@ -8,23 +8,68 @@ AWS.config.loadFromPath(__dirname + "/../modules/awsconfig.json");
var
S3
=
require
(
'../modules/s3/s3'
);
// /file/download/:name
router
.
get
(
'/:name'
,
function
(
req
,
res
)
{
var
file_name
=
req
.
params
.
name
;
var
user_id
=
req
.
session
.
user_id
;
var
curPath
=
req
.
query
.
cur
;
// /folder1/folder2/
var
user_id
=
req
.
query
.
id
;
var
sourceFile
=
file_name
;
var
tempDownloadDir
=
__dirname
+
'/../modules/s3/download/'
+
user_id
+
'/'
+
file_name
;
var
targetFile
=
curPath
.
substring
(
1
)
+
file_name
;
// folder1/folder2/test.txt
S3
.
downloadFile
(
S3
.
BUCKET_NAME
,
user_id
,
sourceFile
,
function
(
result
,
data
)
{
!
fs
.
existsSync
(
tempDownloadDir
+
'/../'
)
&&
fs
.
mkdirSync
(
tempDownloadDir
+
'/../'
);
fs
.
writeFileSync
(
tempDownloadDir
,
data
);
res
.
download
(
tempDownloadDir
,
function
(
err
)
{
fs
.
unlink
(
tempDownloadDir
,
function
(
err
)
{
console
.
log
(
"Download Success"
);
});
S3
.
downloadFile3
(
S3
.
BUCKET_NAME
,
user_id
,
targetFile
,
function
(
result
,
downloadDir
)
{
if
(
result
)
{
res
.
send
({
src
:
downloadDir
})
}
else
{
res
.
send
({
err
:
'download error'
})
}
})
});
/*
router.get('/:name', function (req, res, next) {
var file_name = req.params.name; // test.txt
var user_id = req.query.id;
var curPath = req.query.cur; // /folder1/folder2/
var targetFile = (curPath + file_name).substring(1); // folder1/folder2/test.txt
var s3 = new AWS.S3();
var params = {
Bucket: S3.BUCKET_NAME,
Key: 'drive/' + user_id + '/' + targetFile,
};
res.attachment(file_name);
var fileStream = s3.getObject(params).createReadStream();
fileStream.pipe(res);
});
*/
/*
// /file/download/:name
router.get('/:name', function (req, res) {
var file_name = req.params.name; // test.txt
var user_id = req.query.id;
var curPath = req.query.cur; // /folder1/folder2/
var targetFile = (curPath + file_name).substring(1); // folder1/folder2/test.txt
S3.downloadFile2(S3.BUCKET_NAME, user_id, targetFile, function (result, downloadDir) {
if (result){
res.download(downloadDir, function (err) {
if (err){
console.log(err);
}else{
console.log('download success');
}
});
}else{
res.send({error: 'download error'});
}
});
});
*/
module
.
exports
=
router
;
\ No newline at end of file
...
...
backend/routes/file/files.js
View file @
cf94c6a
...
...
@@ -5,33 +5,43 @@ var AWS = require('aws-sdk');
AWS
.
config
.
loadFromPath
(
__dirname
+
"/../modules/awsconfig.json"
);
var
S3
=
require
(
'../modules/s3/s3'
);
var
fs
=
require
(
'fs'
);
// /file
router
.
get
(
'/'
,
function
(
req
,
res
)
{
var
user_id
=
req
.
session
.
user_id
;
var
user_id
=
req
.
query
.
id
;
var
curPath
=
req
.
query
.
cur
;
// /folder1/folder2/
var
sql
=
'SELECT * FROM files WHERE user_id
=
(?) ORDER BY date DESC'
;
connection
.
query
(
sql
,
user_id
,
function
(
err
,
result
)
{
if
(
result
.
length
==
0
){
res
.
send
({
error
:
'
Exist Nothing
'
});
var
sql
=
'SELECT * FROM files WHERE user_id
=(?) AND location=
(?) ORDER BY date DESC'
;
connection
.
query
(
sql
,
[
user_id
,
curPath
]
,
function
(
err
,
result
)
{
if
(
err
){
res
.
send
({
error
:
'
select error
'
});
}
else
{
res
.
status
(
200
).
send
({
files
:
result
});
}
})
});
// /file/:name
router
.
get
(
'/:name'
,
function
(
req
,
res
)
{
var
file_name
=
req
.
params
.
name
;
var
user_id
=
req
.
session
.
user_id
;
var
curPath
=
req
.
query
.
cur
;
// /folder1/folder2/
var
user_id
=
req
.
query
.
id
;
var
s3
=
new
AWS
.
S3
();
var
targetFile
=
curPath
.
substring
(
1
)
+
file_name
;
// folder1/folder2/test.txt
var
extension
=
targetFile
.
split
(
'.'
)[
1
].
toLowerCase
();
var
sourceFile
=
'drive/'
+
user_id
+
'/'
+
file_name
;
var
params
=
{
Bucket
:
S3
.
BUCKET_NAME
,
Key
:
sourceFile
};
var
stream
=
s3
.
getObject
(
params
).
createReadStream
();
stream
.
pipe
(
res
,
function
(
err
)
{
if
(
err
)
{
throw
err
;
S3
.
downloadFile3
(
S3
.
BUCKET_NAME
,
user_id
,
targetFile
,
function
(
result
,
downloadDir
){
if
(
result
){
if
(
extension
==
'jpg'
||
extension
==
'jpeg'
||
extension
==
'png'
)
{
res
.
status
(
200
).
send
({
type
:
'image'
,
src
:
downloadDir
})
}
else
{
res
.
status
(
200
).
send
({
type
:
'text'
,
src
:
downloadDir
})
}
}
})
});
...
...
backend/routes/file/uploadFile.js
View file @
cf94c6a
...
...
@@ -11,80 +11,79 @@ var S3 = require('../modules/s3/s3');
// /file/upload
router
.
post
(
'/'
,
function
(
req
,
res
)
{
var
user_id
=
req
.
session
.
user_id
;
var
form
=
new
formidable
.
IncomingForm
();
form
.
multiples
=
true
;
form
.
parse
(
req
,
function
(
err
,
fields
,
files
)
{
console
.
log
(
files
);
/* form-data로 받아야 함 */
var
user_id
=
fields
.
user_id
;
var
curPath
=
fields
.
cur
// /folder1/folder2/
console
.
log
(
user_id
);
console
.
log
(
curPath
);
var
sourceFiles
=
[];
var
errFiles
=
[];
var
targetPath
=
''
;
var
targetPath
;
// 'folder1/folder2'
var
bodies
=
[];
var
errMessage
=
'upload error'
;
if
(
curPath
==
'/'
)
{
targetPath
=
''
;
}
else
{
targetPath
=
curPath
.
substring
(
1
,
curPath
.
length
-
1
);
}
var
form
=
new
formidable
.
IncomingForm
();
form
.
multiples
=
true
;
form
.
parse
(
req
,
function
(
err
,
fields
,
files
)
{
if
(
!
files
.
file
[
0
]){
if
(
!
files
.
file
[
0
]){
// 파일 하나일 때
var
checkFileName
=
files
.
file
.
name
;
checkFileName
=
checkFileName
.
split
(
'('
).
join
(
','
).
split
(
')'
).
join
(
','
).
split
(
','
);
if
(
checkFileName
.
length
>
1
)
{
errFiles
.
push
(
files
.
file
.
name
);
errMessage
=
'check your file name(\'(\', \')\' x!)'
}
else
{
sourceFiles
.
push
(
files
.
file
.
name
);
bodies
.
push
(
files
.
file
.
path
);
}
}
else
{
for
(
var
file
of
files
.
file
)
{
for
(
var
file
of
files
.
file
)
{
// 파일 여러개일 때
var
checkFileName
=
file
.
name
;
checkFileName
=
checkFileName
.
split
(
'('
).
join
(
','
).
split
(
')'
).
join
(
','
).
split
(
','
);
if
(
checkFileName
.
length
>
1
){
errFiles
.
push
(
file
.
name
);
}
else
{
sourceFiles
.
push
(
file
.
name
);
bodies
.
push
(
file
.
path
);
}
}
}
S3
.
uploadFiles
(
0
,
errFiles
,
S3
.
BUCKET_NAME
,
user_id
,
sourceFiles
,
targetPath
,
bodies
,
function
(
result
,
errFiles
)
{
var
newSourceFiles
=
[];
if
(
!
result
)
{
// 에러 파일이 있는 경우
var
noErrSourceFiles
=
[];
for
(
var
sourceFile
of
sourceFiles
)
{
if
(
!
(
sourceFile
in
errFiles
))
{
newSourceFiles
.
push
(
sourceFile
);
}
noErrSourceFiles
.
push
(
sourceFile
);
}
}
for
(
var
sourceFile
of
s
ourceFiles
)
{
for
(
var
sourceFile
of
noErrS
ourceFiles
)
{
var
sql
=
'INSERT INTO files (file_name, user_id, location) VALUES (?, ?, ?)'
;
connection
.
query
(
sql
,
[
file_name
,
user_id
,
target
Path
],
function
(
err
,
result
)
{
connection
.
query
(
sql
,
[
sourceFile
,
user_id
,
cur
Path
],
function
(
err
,
result
)
{
if
(
err
)
{
console
.
log
(
'insert file {'
,
sourceFile
,
'} in db failed'
);
console
.
log
(
'insert error'
);
res
.
send
({
error
:
'insert error'
});
}
})
}
res
.
send
({
Errfiles
:
errFiles
});
})
})
})
/*
// /file/upload
router.post('/', function (req, res) {
//var user_id = req.session.user_id;
var user_id = 'shlee';
var form = new formidable.IncomingForm();
form.parse(req, function (err, fields, files) {
var file_name = files.file.name;
var sourceFile = file_name;
var targetPath = '';
var sql = 'INSERT INTO files (file_name, user_id) VALUES (?)';
connection.query(sql, [[file_name, user_id]], function (err) {
if (err) {
console.log("Upload db error");
throw err;
} else {
S3.uploadFile(S3.BUCKET_NAME, user_id, sourceFile, targetPath, files.file.path, function (result) {
if (result) {
console.log("Upload Success");
res.send(result);
if
(
errFiles
.
length
){
res
.
send
({
err
:
errMessage
,
errFiles
:
errFiles
})
}
else
{
console.log("Upload Fail: Check FIle Duplication");
res
.
send
({
message
:
'Upload Success'
,
finalFiles
:
sourceFiles
});
}
})
}
});
})
})
;
*/
})
module
.
exports
=
router
;
\ No newline at end of file
...
...
backend/routes/modules/awsconfig.json
View file @
cf94c6a
{
"accessKeyId"
:
"ASIA
ZQ5XTMMFRBJO2LG5
"
,
"secretAccessKey"
:
"
ltsYvzKAoQ5UnNWEk13Zf8n4wJdkQkemsJ7GdsbS
"
,
"sessionToken"
:
"FwoGZXIvYXdzE
I///////////wEaDLleFCvWDhdhFpXCvCLDAX/Hka6vXTZKxdyEBUh7ZSxPYLH184u1Tpo2qWHYFziUVKWJSCm5wqPNv0QWoAp8sL5NB0W5kty8hoeKv16SYB9Z+yzT1qtfuKTmrro2jGSo7AnxDSBla6UQHAv82yVetiGwu+IKhm6tHUvdNSlkIV0Qi9rNrDc9eynhFN/emFI/6NsocbQ47mmW6BZx0Z4/hHKW9TL6Uec/E87Z+oxVRFsVOGyNtow980bQgZFYJMbh3AN6poTlofP1q/qn2nUWwAdsDCjfhr/2BTItlcDfO5PEH5Gwffzv69JMTVBIemfIpS/Ybx6F6i7GbI2fZKGtGfRSecobbj4m
"
,
"accessKeyId"
:
"ASIA
XZL2SWFEYG2GUYVJ
"
,
"secretAccessKey"
:
"
ceYvfLs25iiBDfigO7PbP67kJoKswJdfduqROrJt
"
,
"sessionToken"
:
"FwoGZXIvYXdzE
DMaDGvezwF9kQrAJ+uhfSLDASWFKBk7UNbRzZVEM1eoGJ3E+UI9d4xSpqEDqRYjsOTn5wYIGM3mUCZ8S6/XCnGP5yFz+qv9mBLDf311iP9ajY091OhQ8c2nB6l+JHuRKAz6FhGLrjHtD1AecHtjHOu5dXODU2+9ctvGj7V60KYqjToah5Tvv84EVac/41Les3rtrqcXS/bbmVwv5kDz9K1FJStln4sXZ/foueGHZAkAJQ6LAtIQWg4/reFUcWAi8E0bUjMckmymDQhnVNWcSbgQ+htBYiiPg+P2BTItOqWuZojM5lw32rTv7+PuOaeyHjx3+Vcd4bo3orSJr57P2ZPfmglZNKY7W5aw
"
,
"region"
:
"us-east-1"
}
...
...
backend/routes/modules/s3/download/kbpark9898/test.txt
0 → 100644
View file @
cf94c6a
asdf
\ No newline at end of file
backend/routes/modules/s3/download/kbpark9898/test4.txt
0 → 100644
View file @
cf94c6a
File mode changed
backend/routes/modules/s3/download/kbpark9898/test6.txt
0 → 100644
View file @
cf94c6a
File mode changed
backend/routes/modules/s3/download/shlee/test100(1).txt
0 → 100644
View file @
cf94c6a
File mode changed
backend/routes/modules/s3/s3.js
View file @
cf94c6a
...
...
@@ -17,7 +17,7 @@
var
AWS
=
require
(
'aws-sdk'
);
AWS
.
config
.
update
({
region
:
'ap-northeast-2'
});
var
BUCKET_NAME
=
'
d
khuloud'
;
var
BUCKET_NAME
=
'khuloud'
;
var
s3
=
new
AWS
.
S3
();
var
fs
=
require
(
'fs'
);
...
...
@@ -52,6 +52,8 @@ var S3 = {
},
copyFile2
:
function
(
bucketName
,
userId
,
sourceFile
,
targetFile
,
callback
)
{
// sourceFile => folder1/folder2/test.txt
// targetFile => trashcan/folder1/folder2/test.txt
var
copyParams
=
{
Bucket
:
bucketName
,
CopySource
:
bucketName
+
'/drive/'
+
userId
+
'/'
+
sourceFile
,
...
...
@@ -72,6 +74,7 @@ var S3 = {
},
deleteFile
:
function
(
bucketName
,
userId
,
targetFile
,
callback
)
{
// targetFile => folder1/folder2/test.txt
var
deleteParams
=
{
Bucket
:
bucketName
,
Key
:
'drive/'
+
userId
+
'/'
+
targetFile
...
...
@@ -95,7 +98,7 @@ var S3 = {
Bucket
:
bucketName
,
Key
:
'drive/'
+
userId
+
'/'
+
targetFile
};
console
.
log
(
'drive/'
+
userId
+
'/'
+
targetFile
);
s3
.
getObject
(
downloadParams
,
function
(
err
,
data
)
{
if
(
err
)
{
console
.
log
(
"Download File Error"
,
err
);
...
...
@@ -103,8 +106,51 @@ var S3 = {
}
else
{
if
(
data
)
{
console
.
log
(
"Get File Success"
);
callback
(
1
,
data
.
Body
);
callback
(
true
,
data
.
body
.
toString
());
}
}
})
},
// /routes/modules/s3/download에 저장
downloadFile2
:
function
(
bucketName
,
userId
,
targetFile
,
callback
){
tempDownloadDir
=
__dirname
+
'/download/'
+
userId
+
'/'
+
targetFile
;
S3
.
downloadFile
(
bucketName
,
userId
,
targetFile
,
function
(
result
,
data
){
if
(
result
)
{
makeFolder
(
tempDownloadDir
,
function
(
result
){
if
(
result
)
{
fs
.
writeFileSync
(
tempDownloadDir
,
data
);
callback
(
true
,
tempDownloadDir
);
}
})
}
else
{
console
.
log
(
'Download File Error'
);
callback
(
false
);
}
})
},
// 최종
downloadFile3
:
function
(
bucketName
,
userId
,
targetFile
,
callback
){
// targetFile 예1 => test.txt
// targetFile 예2 => folder1/folder2/test.txt
var
tempDownloadDir
=
__dirname
+
'/download/'
+
userId
+
'/'
+
targetFile
;
makeFolder
(
tempDownloadDir
,
function
(
result
){
if
(
result
){
var
file
=
fs
.
createWriteStream
(
tempDownloadDir
);
var
params
=
{
Bucket
:
bucketName
,
Key
:
'drive/'
+
userId
+
'/'
+
targetFile
};
try
{
s3
.
getObject
(
params
).
createReadStream
().
pipe
(
file
);
callback
(
true
,
tempDownloadDir
);
}
catch
(
err
){
console
.
log
(
'no such file'
);
callback
(
false
);
}
}
else
{
callback
(
false
);
}
})
},
...
...
@@ -174,6 +220,20 @@ var S3 = {
})
},
// 중복된 파일 버전 만들기(test.txt -> text(1).txt)
makeVersion
:
function
(
bucketName
,
userId
,
sourceFile
,
lvNum
,
callback
)
{
var
sourceFile
;
var
splited
=
sourceFile
.
split
(
'('
).
join
(
','
).
split
(
')'
).
join
(
','
).
split
(
','
);
if
(
splited
.
length
!=
3
)
{
sourceFile
=
sourceFile
.
split
(
'.'
)[
0
]
+
'('
+
lvNum
.
toString
()
+
').'
+
sourceFile
.
split
(
'.'
)[
1
];
}
else
{
sourceFile
=
sourceFile
.
split
(
'('
)[
0
]
+
'('
+
lvNum
.
toString
()
+
')'
+
sourceFile
.
split
(
')'
)[
1
];
}
console
.
log
(
'makeVersion '
,
sourceFile
);
callback
(
true
,
sourceFile
);
},
// sourceFile이 단순히 filename과 같은 경우
moveFile
:
function
(
bucketName
,
userId
,
sourceFile
,
targetPath
,
callback
)
{
S3
.
copyFile
(
bucketName
,
userId
,
sourceFile
,
targetPath
,
function
(
res
)
{
...
...
@@ -194,25 +254,10 @@ var S3 = {
})
},
makeVersion
:
function
(
bucketName
,
userId
,
sourceFile
,
lvNum
,
callback
){
var
sourceFile
;
var
splited
=
sourceFile
.
split
(
'('
).
join
(
','
).
split
(
')'
).
join
(
','
).
split
(
','
);
if
(
splited
.
length
!=
3
){
sourceFile
=
sourceFile
.
split
(
'.'
)[
0
]
+
'('
+
lvNum
.
toString
()
+
')'
+
sourceFile
.
split
(
'.'
)[
1
];
}
else
{
sourceFile
=
sourceFile
.
split
(
'('
)[
0
]
+
'('
+
lvNum
.
toString
()
+
')'
+
sourceFile
.
split
(
')'
)[
1
];
}
console
.
log
(
'makeVersion '
,
sourceFile
);
callback
(
true
,
sourceFile
);
},
// sourceFile에 임의의 경로가 포함된 경우
moveFile2
:
function
(
bucketName
,
userId
,
sourceFile
,
targetPath
,
callback
)
{
var
paths
=
sourceFile
.
split
(
'/'
);
var
filename
=
paths
[
paths
.
length
-
1
];
console
.
log
(
'paths = '
+
paths
);
console
.
log
(
'filename = '
+
filename
);
var
targetFile
=
targetPath
+
filename
;
// sourceFile => folder1/folder2/test.txt
var
targetFile
=
targetPath
+
'/'
+
sourceFile
;
S3
.
copyFile2
(
bucketName
,
userId
,
sourceFile
,
targetFile
,
function
(
res
)
{
if
(
!
res
)
{
...
...
@@ -235,10 +280,11 @@ var S3 = {
uploadFile
:
function
(
bucketName
,
userId
,
sourceFile
,
targetPath
,
body
,
callback
)
{
var
pathbody
=
fs
.
createReadStream
(
body
);
if
(
targetPath
!=
'
'
)
{
if
(
targetPath
!=
''
&&
targetPath
[
targetPath
.
length
-
1
]
!=
'/
'
)
{
targetPath
=
targetPath
+
'/'
;
}
var
targetFile
=
targetPath
+
sourceFile
;
console
.
log
(
'targetFile'
,
targetFile
);
var
uploadParams
=
{
Bucket
:
bucketName
,
...
...
@@ -299,4 +345,23 @@ var S3 = {
},
}
var
makeFolder
=
function
(
dir
,
callback
){
var
paths
=
dir
.
substring
(
__dirname
.
length
+
1
);
// download/userId/folder1/folder2/test.txt
paths
=
paths
.
split
(
'/'
);
var
folders
=
__dirname
;
for
(
var
i
=
0
;
i
<
paths
.
length
-
1
;
i
++
){
folders
+=
'/'
+
paths
[
i
];
if
(
!
fs
.
existsSync
(
folders
)){
fs
.
mkdirSync
(
folders
)
}
}
if
(
fs
.
existsSync
(
folders
)){
callback
(
true
);
}
else
{
callback
(
false
);
}
}
module
.
exports
=
S3
;
...
...
front-end/package-lock.json
View file @
cf94c6a
...
...
@@ -5775,9 +5775,9 @@
}
},
"http-proxy"
:
{
"version"
:
"1.18.
0
"
,
"resolved"
:
"https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.
0
.tgz"
,
"integrity"
:
"sha512-
84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPp
Q=="
,
"version"
:
"1.18.
1
"
,
"resolved"
:
"https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.
1
.tgz"
,
"integrity"
:
"sha512-
7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5N
Q=="
,
"dev"
:
true
,
"requires"
:
{
"eventemitter3"
:
"^4.0.0"
,
...
...
front-end/src/api/index.js
View file @
cf94c6a
...
...
@@ -35,6 +35,52 @@ function moveFolder(folderData) {
return
axios
.
post
(
'/api/folder/move'
,
folderData
);
}
function
file
(
curData
){
return
axios
.
get
(
'/api/file'
,
{
params
:
{
id
:
curData
.
id
,
cur
:
curData
.
cur
}
});
}
function
uploadFile
(
fileData
){
return
axios
.
post
(
'/api/file/upload'
,
fileData
,
{
headers
:{
'Content-Type'
:
'multipart/form-data'
}
});
}
function
detailFile
(
fileData
){
return
axios
.
get
(
`/api/file/
${
fileData
.
name
}
`
,
{
params
:{
id
:
fileData
.
id
,
cur
:
fileData
.
cur
}
})
}
function
deleteFile
(
fileData
){
return
axios
.
get
(
`/api/file/delete/
${
fileData
.
fileName
}
`
,
{
params
:{
//현재 접속한 사람의 id와 삭제할 파일의 이름, 현재 폴더위치를 파라미터로 넘긴다.
id
:
fileData
.
user_id
,
cur
:
fileData
.
cur
}
});
}
function
downloadFile
(
fileData
){
return
axios
.
get
(
`api/file/download/
${
fileData
.
fileName
}
`
,
{
params
:{
//현재 접속한 사람의 id와 다운로드를 위해 선택한 파일의 이름을 파라미터로 넘긴다.
id
:
fileData
.
id
,
cur
:
fileData
.
cur
}
});
}
export
{
registerUser
,
loginUser
,
folder
,
makeFolder
,
deleteFolder
,
moveFolder
};
export
{
registerUser
,
loginUser
,
folder
,
makeFolder
,
deleteFolder
,
moveFolder
,
file
,
uploadFile
,
deleteFile
,
downloadFile
};
...
...
front-end/src/components/FileList.vue
View file @
cf94c6a
...
...
@@ -94,18 +94,22 @@
<v-icon> mdi-file</v-icon>
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title v-text="item"></v-list-item-title>
<v-list-item-title v-text="item
.file_name
"></v-list-item-title>
</v-list-item-content>
<v-list-item-action>
<v-btn icon>
<v-icon color="grey lighten-1">mdi-
information
</v-icon>
<v-btn icon
@click="download_file(item.file_name)"
>
<v-icon color="grey lighten-1">mdi-
download
</v-icon>
</v-btn>
<v-btn icon>
<v-icon color="grey lighten-1">mdi-del
ted
</v-icon>
<v-btn icon
@click="delete_file(item.file_name)"
>
<v-icon color="grey lighten-1">mdi-del
ete
</v-icon>
</v-btn>
</v-list-item-action>
</v-list-item>
</v-list>
<input id = "file-selector" ref='uploadedfile' type="file"
v-on:change="handleFileUpload()">
<br>
<!--
<v-file-input
v-model="files"
color="deep-purple accent-4"
...
...
@@ -134,7 +138,10 @@
+{{ files.length - 2 }} File(s)
</span>
</template>
</v-file-input>
-->
<v-btn color="blue" @click = "upload_file">upload</v-btn>
<v-btn
bottom
color="blue"
...
...
@@ -177,11 +184,12 @@
</div>
</template>
<script>
import { folder, makeFolder, deleteFolder, moveFolder } from '../api/index';
import { folder, makeFolder, deleteFolder, moveFolder
, file, uploadFile, deleteFile, downloadFile
} from '../api/index';
import Axios from 'axios';
export default {
data() {
return {
uploadedfile:null,
foldername:'',
curfName:'',
folders: [],
...
...
@@ -189,12 +197,18 @@ import Axios from 'axios';
search:'',
id: '',
dialog:false,
search: '',
howMenu: false,
showMenu: false,
x: 0,
y: 0,
dialog2:false
dialog2:false,
detail : {
dataname: null,
date: null,
owner_id:null,
datasize:null,
datatype:null
}
}
},
async created(){
...
...
@@ -203,18 +217,28 @@ import Axios from 'axios';
id : this.$store.state.id,
cur: '/'
}
console.log(curData);
const response = await folder(curData);
cons
ole.log(response.d
ata);
cons
t file_response = await file(curD
ata);
this.$store.commit('setFolder', response.data.folders);
this.$store.commit('setCur', response.data.cur);
this.$store.commit('setParent', response.data.parentPath);
this.folders = this.$store.getters.folderL;
this.$store.commit('setFile', file_response.data.files);
this.folders = this.$store.getters.folderL;
console.log(this.$store.getters.fileL);
this.files = this.$store.getters.fileL;
} catch (error) {
console.log("에러");
console.log(error
.response.data
);
console.log(error);
}
},
methods: {
handleFileUpload(){
this.uploadedfile= this.$refs.uploadedfile.files[0]
console.log(this.uploadedfile)
},
initFolderName(){
this.foldername = '';
},
...
...
@@ -316,6 +340,80 @@ import Axios from 'axios';
this.dialog2 = false;
}
},
async upload_file(){
try{
const formData = new FormData();
formData.append('file', this.uploadedfile);
formData.append('user_id', this.$store.state.id);
formData.append('cur', this.$store.state.cur);
const currentData={
id: this.$store.state.id,
cur: this.$store.state.cur
}
console.log(currentData)
const response = await uploadFile(formData);
const filelist = await file(currentData);
console.log(filelist.data.files);
this.$store.commit('setFile', filelist.data.files);
console.log(this.$store.getters.fileL);
this.files = this.$store.getters.fileL;;
}catch(error){
console.log("에러");
console.log(error);
}
},
async delete_file(itemName){
try{
var itemlist = this.$store.getters.fileL;
console.log(itemlist)
console.log(itemName)
const currentData={
fileName : null,
user_id: null,
cur: this.$store.state.cur
}
for(var i=0; i<itemlist.length; i++){
console.log(itemlist[i].file_name)
if(itemlist[i].file_name == itemName){
currentData.fileName = itemlist[i].file_name;
currentData.user_id = itemlist[i].user_id;
}
}
const filelistData={
id: currentData.user_id,
cur: currentData.cur
}
console.log(currentData)
const response = await deleteFile(currentData);
setTimeout(function(){}, 500);
const filelist = await file(filelistData);
console.log(filelist.data.files);
this.$store.commit('setFile', filelist.data.files);
console.log(this.$store.getters.fileL);
this.files = this.$store.getters.fileL;;
}catch(error){
console.log("에러");
console.log(error);
}
},
async download_file(namedata){
try{
const currentData={
fileName : namedata,
id: this.$store.state.id,
cur: this.$store.state.cur
}
const result = await downloadFile(currentData);
console.log(result)
}catch(error){
console.log("에러");
console.log(error);
}
}
},
show (folderN, e) {
e.preventDefault()
this.curfName = folderN;
...
...
@@ -326,6 +424,6 @@ import Axios from 'axios';
this.showMenu = true
})
}
}
}
</script>
...
...
Please
register
or
login
to post a comment