I want to upload a file to a storage container using the Loopback storage service.
But the .upload() method expects a request object. But what if I want to upload an existing file that's not coming from a submitted form?
Do I need to fake a POST request in order to make the upload handler happy? Seems like there must be a better way.
As @RohitArkani hinted, the file app-cloud.js contains a version 1 example of file upload which uses storageService.uploadStream(container, file, [options], Callback)
.
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);
It seems (but see the comment) that in version 2, you get the storage service via
var ds = loopback.createDataSource({
connector: require('loopback-storage-service'),
provider: 'amazon',
key: '...',
keyId: '...'
});
var Container = ds.createModel('container');
instead. Then, call Container.uploadStream(...)
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With