2015-10-12 4 views
8

Ich möchte eine Datei mit der Loopback storage service in einen Speichercontainer hochladen.LoopBack Storage Service, Upload direkt (ohne Anfrageobjekt)

Aber die .upload() method erwartet ein Anfrageobjekt. Was aber, wenn ich eine vorhandene Datei hochladen möchte, die nicht aus einem übermittelten Formular stammt?

Muss ich eine POST-Anfrage fälschen, um den Upload-Handler glücklich zu machen? Scheint so, als müsste es einen besseren Weg geben.

+0

Nicht versucht, aber es gibt Methode, um http://apidocs.strongloop.com/loopback-component-storage/#storageservice-prototype-uploadstream zu erhalten. Dies gibt den Stream zurück, Sie können die Pipe verwenden und einfach die vorhandene Datei mit dem Stream hochladen. –

Antwort

3

Als @RohitArkani hinted enthält die Datei app-cloud.js ein Beispiel für den Datei-Upload in Version 1, das storageService.uploadStream(container, file, [options], Callback) verwendet.

var s3 = new StorageService({ 
    provider: 'amazon', 
    key: "your-amazon-key", 
    keyId: "your-amazon-key-id" 
}); 

var fs = require('fs'); 
var path = require('path'); 
var stream = s3.uploadStream('con1', 'test.jpg'); 
fs.createReadStream(path.join(__dirname, 'test.jpg')).pipe(stream); 

Es seems (siehe aber the comment), die in der Version 2, können Sie den Speicherdienst über

var ds = loopback.createDataSource({ 
    connector: require('loopback-storage-service'), 
    provider: 'amazon', 
    key: '...', 
    keyId: '...' 
}); 
var Container = ds.createModel('container'); 

stattdessen bekommen. Dann rufen Sie Container.uploadStream(...).

+1

Es scheint, dass Version 2 immer noch die obige Pipe-Methode verwenden muss, da uploadStream nur den Stream zum Hochladen erhält und es seltsam ist, dass es keine Callback-Methode gibt, um darauf zu reagieren (node_modules/loopback-component-storage/lib/storage- service.js), obwohl es im offiziellen Dokument erwähnt über den Rückruf .. https://apidocs.strongloop.com/loopback-component-storage/#storageservice-prototype-uploadstream – nivincp

Verwandte Themen