我想使用Loopback storage service将文件上传到存储容器。
但是.upload() method需要一个请求对象。但是,如果我想上传一个不是来自提交表单的现有文件呢?
我是否需要伪造POST请求以使上传处理程序满意?似乎必须有更好的方法。
答案 0 :(得分:3)
作为@RohitArkani hinted,文件app-cloud.js包含使用storageService.uploadStream(container, file, [options], Callback)
的文件上传的第1版示例。
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);
seems(但请参阅the comment)在版本2中,您可以通过
获取存储服务var ds = loopback.createDataSource({
connector: require('loopback-storage-service'),
provider: 'amazon',
key: '...',
keyId: '...'
});
var Container = ds.createModel('container');
代替。然后,拨打Container.uploadStream(...)
。