pixl-server-storage 3.1.6 → 3.1.8

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.
package/engines/S3.js CHANGED
@@ -7,6 +7,7 @@ var Component = require("pixl-server/component");
7
7
  var Tools = require("pixl-tools");
8
8
  var Cache = require("pixl-cache");
9
9
  var S3 = require("@aws-sdk/client-s3");
10
+ var { Upload } = require("@aws-sdk/lib-storage");
10
11
  var { NodeHttpHandler } = require("@aws-sdk/node-http-handler");
11
12
  var streamToBuffer = require("fast-stream-to-buffer");
12
13
 
@@ -158,11 +159,11 @@ module.exports = Class.create({
158
159
  self.cache.set( orig_key, params.Body, { date: Tools.timeNow(true) } );
159
160
  }
160
161
 
161
- if (callback) callback(null, data);
162
+ if (callback) process.nextTick( function() { callback(null, data); });
162
163
  } )
163
164
  .catch( function(err) {
164
165
  self.logError('s3', "Failed to store object: " + key + ": " + (err.message || err), err);
165
- if (callback) callback(err);
166
+ if (callback) process.nextTick( function() { callback(err); });
166
167
  } );
167
168
  },
168
169
 
@@ -178,14 +179,19 @@ module.exports = Class.create({
178
179
 
179
180
  this.logDebug(9, "Storing S3 Binary Stream: " + key);
180
181
 
181
- this.s3.send( new S3.PutObjectCommand(params) )
182
+ var upload = new Upload({
183
+ client: this.s3,
184
+ params: params
185
+ });
186
+
187
+ upload.done()
182
188
  .then( function(data) {
183
189
  self.logDebug(9, "Stream store complete: " + key);
184
- if (callback) callback(null, data);
190
+ if (callback) process.nextTick( function() { callback(null, data); });
185
191
  } )
186
192
  .catch( function(err) {
187
193
  self.logError('s3', "Failed to store stream: " + key + ": " + (err.message || err), err);
188
- if (callback) callback(err);
194
+ if (callback) process.nextTick( function() { callback(err, null); });
189
195
  } );
190
196
  },
191
197
 
@@ -202,14 +208,19 @@ module.exports = Class.create({
202
208
 
203
209
  this.logDebug(9, "Storing S3 Binary Stream: " + key);
204
210
 
205
- this.s3.send( new S3.PutObjectCommand(params) )
211
+ var upload = new Upload({
212
+ client: this.s3,
213
+ params: params
214
+ });
215
+
216
+ upload.done()
206
217
  .then( function(data) {
207
218
  self.logDebug(9, "Stream store complete: " + key);
208
- if (callback) callback(null, data);
219
+ if (callback) process.nextTick( function() { callback(null, data); });
209
220
  } )
210
221
  .catch( function(err) {
211
222
  self.logError('s3', "Failed to store stream: " + key + ": " + (err.message || err), err);
212
- if (callback) callback(err);
223
+ if (callback) process.nextTick( function() { callback(err, null); });
213
224
  } );
214
225
  },
215
226
 
@@ -241,9 +252,11 @@ module.exports = Class.create({
241
252
  .then( function(data) {
242
253
  self.logDebug(9, "Head complete: " + key);
243
254
 
244
- callback( null, {
245
- mod: Math.floor( (new Date(data.LastModified)).getTime() / 1000 ),
246
- len: data.ContentLength
255
+ process.nextTick( function() {
256
+ callback( null, {
257
+ mod: Math.floor( (new Date(data.LastModified)).getTime() / 1000 ),
258
+ len: data.ContentLength
259
+ } );
247
260
  } );
248
261
  } )
249
262
  .catch( function(err) {
@@ -257,7 +270,7 @@ module.exports = Class.create({
257
270
  // some other error
258
271
  self.logError('s3', "Failed to head key: " + key + ": " + (err.message || err), err);
259
272
  }
260
- callback( err );
273
+ process.nextTick( function() { callback( err ); } );
261
274
  } );
262
275
  },
263
276
 
@@ -337,7 +350,7 @@ module.exports = Class.create({
337
350
  // some other error
338
351
  self.logError('s3', "Failed to fetch key: " + key + ": " + (err.message || err), err);
339
352
  }
340
- callback( err );
353
+ process.nextTick( function() { callback( err ); } );
341
354
  } );
342
355
  },
343
356
 
@@ -366,9 +379,11 @@ module.exports = Class.create({
366
379
  self.logDebug(9, "S3 stream download closed: " + key);
367
380
  } );
368
381
 
369
- callback( null, download, {
370
- mod: Math.floor( (new Date(data.LastModified)).getTime() / 1000 ),
371
- len: data.ContentLength
382
+ process.nextTick( function() {
383
+ callback( null, download, {
384
+ mod: Math.floor( (new Date(data.LastModified)).getTime() / 1000 ),
385
+ len: data.ContentLength
386
+ } );
372
387
  } );
373
388
  })
374
389
  .catch( function(err) {
@@ -382,7 +397,7 @@ module.exports = Class.create({
382
397
  // some other error
383
398
  self.logError('s3', "Failed to fetch key: " + key + ": " + (err.message || err), err);
384
399
  }
385
- callback( err );
400
+ process.nextTick( function() { callback( err ); } );
386
401
  });
387
402
  },
388
403
 
@@ -425,10 +440,12 @@ module.exports = Class.create({
425
440
  len = parseInt( RegExp.$1 );
426
441
  }
427
442
 
428
- callback( null, download, {
429
- mod: Math.floor( (new Date(data.LastModified)).getTime() / 1000 ),
430
- len: len,
431
- cr: data.ContentRange
443
+ process.nextTick( function() {
444
+ callback( null, download, {
445
+ mod: Math.floor( (new Date(data.LastModified)).getTime() / 1000 ),
446
+ len: len,
447
+ cr: data.ContentRange
448
+ } );
432
449
  } );
433
450
  })
434
451
  .catch( function(err) {
@@ -442,7 +459,7 @@ module.exports = Class.create({
442
459
  // some other error
443
460
  self.logError('s3', "Failed to fetch key: " + key + ": " + (err.message || err), err);
444
461
  }
445
- callback( err );
462
+ process.nextTick( function() { callback( err ); } );
446
463
  });
447
464
  },
448
465
 
@@ -466,11 +483,11 @@ module.exports = Class.create({
466
483
  self.cache.delete(orig_key);
467
484
  }
468
485
 
469
- if (callback) callback(null, data);
486
+ if (callback) process.nextTick( function() { callback(null, data); } );
470
487
  } )
471
488
  .catch( function(err) {
472
489
  self.logError('s3', "Failed to delete object: " + key + ": " + (err.message || err), err);
473
- if (callback) callback(err);
490
+ if (callback) process.nextTick( function() { callback(err); } );
474
491
  } );
475
492
  },
476
493
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pixl-server-storage",
3
- "version": "3.1.6",
3
+ "version": "3.1.8",
4
4
  "description": "A key/value/list storage component for the pixl-server framework.",
5
5
  "author": "Joseph Huckaby <jhuckaby@gmail.com>",
6
6
  "homepage": "https://github.com/jhuckaby/pixl-server-storage",
@@ -23,6 +23,8 @@
23
23
  ],
24
24
  "dependencies": {
25
25
  "@aws-sdk/client-s3": "3.186.0",
26
+ "@aws-sdk/lib-storage": "3.186.0",
27
+ "@aws-sdk/node-http-handler": "3.186.0",
26
28
  "async": "2.6.4",
27
29
  "fast-stream-to-buffer": "1.0.0",
28
30
  "he": "1.1.1",
package/storage.js CHANGED
@@ -567,7 +567,7 @@ module.exports = Class.create({
567
567
  );
568
568
 
569
569
  // optional timeout for queue item execution
570
- var timer = this.queueTimeout ? timer = setTimeout( function() {
570
+ var timer = this.queueTimeout ? setTimeout( function() {
571
571
  self.logError('queue', "Async task timed out: " + task._id + ": " + (task.label || task.action), { ms: self.queueTimeout });
572
572
  if (callback) callback();
573
573
  callback = null;