@kne/fastify-file-manager 2.0.11 → 2.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -96,13 +96,21 @@ module.exports = fp(async (fastify, options) => {
96
96
  file.storageType = storageType;
97
97
  await file.save();
98
98
  return file;
99
- })(() => models.fileRecord.create({
100
- filename, namespace: namespace || options.namespace, encoding, mimetype, hash: digest, size: fileSize, storageType
101
- }));
99
+ })(() =>
100
+ models.fileRecord.create({
101
+ filename,
102
+ namespace: namespace || options.namespace,
103
+ encoding,
104
+ mimetype,
105
+ hash: digest,
106
+ size: fileSize,
107
+ storageType
108
+ })
109
+ );
102
110
  return Object.assign({}, outputFile.get({ plain: true }), { id: outputFile.uuid });
103
111
  };
104
112
 
105
- const uploadFromUrl = async ({ id, url, namespace }) => {
113
+ const uploadFromUrl = async ({ id, url, filename: originFilename, namespace }) => {
106
114
  const response = await fetch(url);
107
115
  if (!response.ok) {
108
116
  throw new Error('下载文件失败');
@@ -143,13 +151,20 @@ module.exports = fp(async (fastify, options) => {
143
151
  }
144
152
  }
145
153
 
154
+ if (originFilename) {
155
+ filename = originFilename;
156
+ }
157
+
146
158
  const searchParams = new URLSearchParams(url.split('?')[1]);
147
159
  if (searchParams.get('filename')) {
148
160
  filename = searchParams.get('filename');
149
161
  }
150
162
 
151
163
  const tempFile = {
152
- filename, mimetype: response.headers.get('content-type'), encoding: 'binary', file: nodeStream
164
+ filename,
165
+ mimetype: response.headers.get('content-type'),
166
+ encoding: 'binary',
167
+ file: nodeStream
153
168
  };
154
169
  return await uploadToFileSystem({ id, file: tempFile, namespace });
155
170
  };
@@ -184,11 +199,13 @@ module.exports = fp(async (fastify, options) => {
184
199
  targetFile = await ossServices.downloadFile({ filename: targetFileName });
185
200
  }
186
201
  return Object.assign({}, file.get({ pain: true }), {
187
- id: file.uuid, filePath: targetFileName, targetFile
202
+ id: file.uuid,
203
+ filePath: targetFileName,
204
+ targetFile
188
205
  });
189
206
  };
190
207
 
191
- const getFileList = async ({ filter, currentPage, perPage }) => {
208
+ const getFileList = async ({ filter = {}, currentPage, perPage }) => {
192
209
  // namespace: namespace || options.namespace
193
210
  const queryFilter = {};
194
211
 
@@ -212,11 +229,39 @@ module.exports = fp(async (fastify, options) => {
212
229
  };
213
230
  }
214
231
 
232
+ if (filter?.id) {
233
+ queryFilter.uuid = {
234
+ [Op.like]: `%${filter.id}%`
235
+ };
236
+ }
237
+
238
+ if (filter?.createdAt) {
239
+ if (filter.createdAt.startTime && filter.createdAt.endTime) {
240
+ queryFilter.createdAt = {
241
+ [Op.between]: [filter.createdAt.startTime, filter.createdAt.endTime]
242
+ };
243
+ }
244
+ if (filter.createdAt.startTime && !filter.createdAt.endTime) {
245
+ queryFilter.createdAt = {
246
+ [Op.gte]: filter.createdAt.startTime
247
+ };
248
+ }
249
+ if (!filter.createdAt.startTime && filter.createdAt.endTime) {
250
+ queryFilter.createdAt = {
251
+ [Op.lte]: filter.createdAt.endTime
252
+ };
253
+ }
254
+ }
255
+
215
256
  const { count, rows } = await models.fileRecord.findAndCountAll({
216
- where: queryFilter, offset: perPage * (currentPage - 1), limit: perPage
257
+ where: queryFilter,
258
+ offset: perPage * (currentPage - 1),
259
+ limit: perPage,
260
+ order: [['createdAt', 'desc']]
217
261
  });
218
262
  return {
219
- pageData: rows.map(item => Object.assign({}, item.get({ plain: true }), { id: item.uuid })), totalCount: count
263
+ pageData: rows.map(item => Object.assign({}, item.get({ plain: true }), { id: item.uuid })),
264
+ totalCount: count
220
265
  };
221
266
  };
222
267
 
@@ -261,7 +306,8 @@ module.exports = fp(async (fastify, options) => {
261
306
  }
262
307
 
263
308
  return Object.assign({}, file.get({ plain: true }), {
264
- id: file.uuid, buffer
309
+ id: file.uuid,
310
+ buffer
265
311
  });
266
312
  };
267
313
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kne/fastify-file-manager",
3
- "version": "2.0.11",
3
+ "version": "2.0.13",
4
4
  "description": "用于管理静态文件上传查看等",
5
5
  "main": "index.js",
6
6
  "scripts": {