質問
ファイルを meteor にアップロードし、画像操作 (必要に応じて画像変換、画像からサムネイルを生成) を行って、外部画像ストレージ サーバー (s3) に保存する必要があります。これはできるだけ高速である必要があります。Nodejs 画像処理ライブラリに関する推奨事項はありますか?また、ファイルを meteorjs にアップロードするにはどうすればよいですか?
ありがとう
解決
次の解決策で終わった:
1)カスタムアップロードURLのためのMeteorサーバ側の経路
__meteor_bootstrap__.app.stack.splice (0, 0, {
route: '/upload',
handle: function (req,res, next) {
//handle upload
}.future ()
});
.
2)ファイルのアップロード機能内でFormidable NodeJSモジュールを使用する
他のヒント
最も簡単な解決策私がfilePicker.ioを使用しています。それはあなたのMeteorアプリに統合することが非常に簡単で、直接S3に差し込みます。
(HAUSOR.com) https://github.com/collectionfs/meteor-collectionfs と追加のプラグインを使用すると、Amazon S3ファイルのアップロードとイメージスケーリング/トリミングをサポートします。
Meteorがアップロードをサポートしているとは思わない。おそらく将来何かが計画されています。その間、私はどちらか(FileReaderや何かでファイルを読むことができると仮定して):
a)ファイルをMongoに挿入してからS3
に保存したときに削除してください。b)クライアントからS3まで保存します(これを行うための「安全な」方法があるかどうかわからない。これは、資格情報を捨てずに、探索する価値がある可能性があります)。
c)[FileReaderを使うことができない場合]外部サーバーに投稿するIFrameまたは何かを使用すると、アップロードを処理してからMeteorサーバーから通信することができます。
ここで私の答えの1つを確認してください。 meteorを使用したファイルのアップロードとダウンロード
ファイルのアップロードにbusboyを使用していますが、ただ使用しています fs = Npm.require("fs")
ファイル書き込みの場合:これらをbusboy:の中に入れるだけです。保存先はアップロードしたパスです。単純にAPACHEまたはファイルホスティングを使用し、その上の他のポートを使用します。
file.pipe(fs.createWriteStream(saveTo))