Loopback storage serviceを使用してファイルをストレージコンテナにアップロードしたいとします。LoopBack Storage Service(リクエストオブジェクトなし)
しかし、.upload() methodにはリクエストオブジェクトが必要です。しかし、提出されたフォームから来ていない既存のファイルをアップロードしたいのですが?
アップロードハンドラを幸せにするためにPOSTリクエストを偽装する必要がありますか?より良い方法が必要であるように思えます。
Loopback storage serviceを使用してファイルをストレージコンテナにアップロードしたいとします。LoopBack Storage Service(リクエストオブジェクトなし)
しかし、.upload() methodにはリクエストオブジェクトが必要です。しかし、提出されたフォームから来ていない既存のファイルをアップロードしたいのですが?
アップロードハンドラを幸せにするためにPOSTリクエストを偽装する必要がありますか?より良い方法が必要であるように思えます。
@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(...)
に電話してください。
バージョン2では上記のパイプメソッドを使用する必要があるようです。uploadStreamはアップロード用のストリームを取得するだけで、それを処理するコールバックメソッドがないことは奇妙です(node_modules/loopback-component-storage/lib/storage- service.js)でも、公式の文書ではコールバックについて言及しています.. https://apidocs.strongloop.com/loopback-component-storage/#storageservice-prototype-uploadstream – nivincp
試してみませんが、ストリームhttp://apidocs.strongloop.com/loopback-component-storage/#storageservice-prototype-uploadstreamを取得する方法があります。これはストリームを返します。パイプを使用してストリームを使用して既存のファイルを単純にアップロードすることができます。 –