use 'name' param as GridFS file's 'filename'

This commit is contained in:
otofune 2017-11-07 09:30:51 +09:00
parent a7762aea4f
commit fb422b4d60
6 changed files with 9 additions and 7 deletions

View file

@ -144,11 +144,10 @@ export default (
} }
// Create DriveFile document // Create DriveFile document
const file = await addToGridFS(`${user._id}/${name}`, data, { const file = await addToGridFS(name, data, {
user_id: user._id, user_id: user._id,
folder_id: folder !== null ? folder._id : null, folder_id: folder !== null ? folder._id : null,
type: mime, type: mime,
name: name,
comment: comment, comment: comment,
properties: properties properties: properties
}); });

View file

@ -24,7 +24,7 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
// Issue query // Issue query
const files = await DriveFile const files = await DriveFile
.find({ .find({
'metadata.name': name, filename: name,
'metadata.user_id': user._id, 'metadata.user_id': user._id,
'metadata.folder_id': folderId 'metadata.folder_id': folderId
}); });

View file

@ -34,7 +34,7 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
// Get 'name' parameter // Get 'name' parameter
const [name, nameErr] = $(params.name).optional.string().pipe(validateFileName).$; const [name, nameErr] = $(params.name).optional.string().pipe(validateFileName).$;
if (nameErr) return rej('invalid name param'); if (nameErr) return rej('invalid name param');
if (name) file.metadata.name = name; if (name) file.filename = name;
// Get 'folder_id' parameter // Get 'folder_id' parameter
const [folderId, folderIdErr] = $(params.folder_id).optional.nullable.id().$; const [folderId, folderIdErr] = $(params.folder_id).optional.nullable.id().$;
@ -61,7 +61,7 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
await DriveFile.update(file._id, { await DriveFile.update(file._id, {
$set: { $set: {
'metadata.name': file.metadata.name, filename: file.filename,
'metadata.folder_id': file.metadata.folder_id 'metadata.folder_id': file.metadata.folder_id
} }
}); });

View file

@ -47,6 +47,7 @@ export default (
_target.id = _file._id; _target.id = _file._id;
_target.created_at = _file.uploadDate; _target.created_at = _file.uploadDate;
_target.name = _file.filename;
_target = Object.assign(_target, _file.metadata); _target = Object.assign(_target, _file.metadata);

View file

@ -97,7 +97,7 @@ async function sendFileById(req: express.Request, res: express.Response): Promis
const file = await DriveFile.findOne({ _id: fileId }); const file = await DriveFile.findOne({ _id: fileId });
// validate name // validate name
if (req.params.name !== undefined && req.params.name !== file.metadata.name) { if (req.params.name !== undefined && req.params.name !== file.filename) {
res.status(404).send('there is no file has given name'); res.status(404).send('there is no file has given name');
return; return;
} }

View file

@ -21,15 +21,17 @@ const migrateToGridFS = async (doc) => {
const id = doc._id const id = doc._id
const buffer = doc.data.buffer const buffer = doc.data.buffer
const created_at = doc.created_at const created_at = doc.created_at
const name = doc.name
delete doc._id delete doc._id
delete doc.created_at delete doc.created_at
delete doc.datasize delete doc.datasize
delete doc.hash delete doc.hash
delete doc.data delete doc.data
delete doc.name
const bucket = await getGridFSBucket() const bucket = await getGridFSBucket()
const added = await writeToGridFS(bucket, buffer, id, `${id}/${doc.name}`, { metadata: doc }) const added = await writeToGridFS(bucket, buffer, id, name, { metadata: doc })
const result = await DriveFile.update(id, { const result = await DriveFile.update(id, {
$set: { $set: {