Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
X
xpub-epmc
Manage
Activity
Members
Labels
Plan
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Deploy
Releases
Package Registry
Container Registry
Operate
Terraform modules
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Code review analytics
Insights
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Literature-services
public-projects
xpub-epmc
Commits
4438ea48
Commit
4438ea48
authored
6 years ago
by
Yogmatee Roochun
Browse files
Options
Downloads
Plain Diff
Merge branch 'shared-data-model' into remotes/origin/xsweet
parents
58a573b9
f6f4662e
No related branches found
Branches containing commit
No related tags found
Tags containing commit
2 merge requests
!93
Shared data model
,
!94
Dev
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
server/ftp-integration/taggedXML.js
+22
-7
22 additions, 7 deletions
server/ftp-integration/taggedXML.js
server/minio-server/src/FileBackend.js
+5
-15
5 additions, 15 deletions
server/minio-server/src/FileBackend.js
server/utils/files.js
+3
-9
3 additions, 9 deletions
server/utils/files.js
with
30 additions
and
31 deletions
server/ftp-integration/taggedXML.js
+
22
−
7
View file @
4438ea48
...
...
@@ -5,8 +5,10 @@ const getUser = require('../utils/user.js')
const
tar
=
require
(
'
../utils/unTar.js
'
)
const
files
=
require
(
'
../utils/files.js
'
)
const
db
=
require
(
'
../utils/db.js
'
)
const
uuidv4
=
require
(
'
uuid/v4
'
)
const
ftpTagger
=
config
.
get
(
'
ftp_tagger
'
)
const
rootPath
=
`
${
process
.
env
.
HOME
}
/
${
config
.
get
(
'
ftp_directory
'
)}
/
${
ftpTagger
.
username
}
/Done`
...
...
@@ -54,13 +56,26 @@ async function processFile(path) {
extractedFilePath
,
manifestFilename
,
)
const
[
filesArr
,
promisesArr
]
=
await
files
.
checkFiles
(
filesData
,
tmpPath
,
user
,
)
await
db
.
createTaggersFiles
(
filesArr
)
await
Promise
.
all
(
promisesArr
)
const
filesArr
=
await
files
.
checkFiles
(
filesData
,
tmpPath
,
user
)
const
uuid
=
uuidv4
()
// upload to minio
for
(
let
i
=
0
;
i
<
filesArr
.
length
;
i
+=
1
)
{
files
.
uploadFileToMinio
(
`
${
uuid
}${
filesArr
[
i
].
extension
}
`
,
filesArr
[
i
].
filename
,
filesArr
[
i
].
url
,
filesArr
[
i
].
mimeType
,
)
}
const
dbFilesArr
=
filesArr
.
map
(
obj
=>
{
obj
.
url
=
`/download/
${
uuid
}${
obj
.
extension
}
`
delete
obj
.
extension
return
obj
})
await
db
.
createTaggersFiles
(
dbFilesArr
)
await
files
.
renameFile
(
path
)
logger
.
info
(
'
Uploading to Minio and the database has been completed.
'
)
}
catch
(
err
)
{
...
...
This diff is collapsed.
Click to expand it.
server/minio-server/src/FileBackend.js
+
5
−
15
View file @
4438ea48
const
config
=
require
(
'
config
'
)
const
expressMinio
=
require
(
'
express-middleware-minio
'
)
const
minioMiddleware
=
expressMinio
.
middleware
()
...
...
@@ -32,19 +31,14 @@ module.exports = app => {
app
.
get
(
`/api/files/:filename`
,
minioMiddleware
({
op
:
expressMinio
.
Ops
.
get
}),
minioMiddleware
({
op
:
expressMinio
.
Ops
.
get
Stream
}),
(
req
,
res
)
=>
{
if
(
req
.
minio
.
error
)
{
res
.
status
(
400
).
json
({
error
:
req
.
minio
.
error
})
return
}
res
.
sendFile
(
req
.
minio
.
get
.
path
,
{},
err
=>
{
if
(
err
)
{
res
.
status
(
500
).
json
({
err
})
}
expressMinio
.
utils
.
removeFile
(
req
.
minio
.
get
.
path
)
})
req
.
minio
.
get
.
stream
.
pipe
(
res
)
},
)
...
...
@@ -64,19 +58,15 @@ module.exports = app => {
* files for the pdf conversion stage. */
app
.
get
(
`
${
download_path
}
/:filename`
,
minioMiddleware
({
op
:
expressMinio
.
Ops
.
get
}),
minioMiddleware
({
op
:
expressMinio
.
Ops
.
get
Stream
}),
(
req
,
res
)
=>
{
if
(
req
.
minio
.
error
)
{
res
.
status
(
400
).
json
({
error
:
req
.
minio
.
error
})
return
}
res
.
download
(
req
.
minio
.
get
.
path
,
req
.
minio
.
get
.
originalName
,
err
=>
{
if
(
err
)
{
console
.
warn
(
'
Download failed:
'
,
err
)
}
expressMinio
.
utils
.
removeFile
(
req
.
minio
.
get
.
path
)
})
res
.
attachment
(
req
.
minio
.
get
.
originalName
)
req
.
minio
.
get
.
stream
.
pipe
(
res
)
},
)
}
This diff is collapsed.
Click to expand it.
server/utils/files.js
+
3
−
9
View file @
4438ea48
...
...
@@ -3,7 +3,6 @@ const logger = require('@pubsweet/logger')
const
readline
=
require
(
'
readline
'
)
const
path
=
require
(
'
path
'
)
const
mime
=
require
(
'
mime-types
'
)
const
uuidv4
=
require
(
'
uuid/v4
'
)
const
download
=
require
(
'
download
'
)
const
fetch
=
require
(
'
node-fetch
'
)
...
...
@@ -28,7 +27,7 @@ module.exports.getManifestFileData = function getManifestFileData(
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
const
files
=
[]
const
manuscriptId
=
manifestFileName
.
split
(
'
manifest.txt
'
)[
0
]
const
manuscriptId
=
manifestFileName
.
match
(
/
\d
+/g
)[
0
]
const
lineReader
=
readline
.
createInterface
({
input
:
fs
.
createReadStream
(
`
${
tempFolder
}
/
${
manifestFileName
}
`
,
{
...
...
@@ -63,7 +62,6 @@ module.exports.getManifestFileData = function getManifestFileData(
module
.
exports
.
checkFiles
=
function
checkFiles
(
files
,
tmpPath
,
user
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
const
filesArr
=
[]
const
promisesArr
=
[]
for
(
let
i
=
0
;
i
<
files
.
length
;
i
+=
1
)
{
fs
.
access
(
files
[
i
].
fileURI
,
fs
.
F_OK
,
err
=>
{
if
(
err
)
{
...
...
@@ -82,24 +80,20 @@ module.exports.checkFiles = function checkFiles(files, tmpPath, user) {
const
fileSizeInBytes
=
stats
.
size
const
extension
=
path
.
extname
(
file
)
const
mimeType
=
mime
.
contentType
(
extension
)
const
uuid
=
uuidv4
()
filesArr
.
push
({
manuscriptId
,
filename
,
mimeType
,
extension
,
type
:
fileType
,
size
:
fileSizeInBytes
,
url
:
file
,
label
:
fileLabel
,
updatedBy
:
user
.
userId
,
})
promisesArr
.
push
(
uploadFileToMinio
(
`
${
uuid
}${
extension
}
`
,
filename
,
file
,
mimeType
),
)
}
resolve
(
[
filesArr
,
promisesArr
]
)
resolve
(
filesArr
)
})
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment