3

node.jsを使用したサーバーサイドプログラミングは初めてです。私は今、小さなウェブアプリをそれにくっつけて、通常のスタートアップ学習をしています。次のコードはWORKSです。しかし、フォームから単純なファイルのアップロードを行い、それを aws s3 に投入することが多かれ少なかれ正しい方法であるかどうかを知りたいです。

app.router.post('/form', { stream: true }, function () {

    var req = this.req,
        res = this.res,
        form = new formidable.IncomingForm();

    form
    .parse(req, function(err, fields, files) {
        console.log('Parsed file upload' + err);
        if (err) {
            res.end('error: Upload failed: ' + err);
        } else {
            var img = fs.readFileSync(files.image.path);
            var data = {
                Bucket: 'le-bucket',
                Key:    files.image.name,
                Body:   img
            };
            s3.client.putObject(data, function() {
                console.log("Successfully uploaded data to myBucket/myKey");
            });
            res.end('success: Uploaded file(s)');
        }
    });
});

注: union / flatiron.plugins.http でバッファーをオフにする必要がありました。

私が学びたいのは、いつファイルをストリームロードし、いつ同期ロードするかです。これは、トラフィックの少ない非常に小さな Web アプリケーションになります。

多かれ少なかれ良い場合は、これを動作コードのトークンと見なしてください。これも要点に入れます。この種のドキュメントや実用的な例を見つけるのはそれほど簡単ではありません。私はフラットアイアンが大好きです。しかし、それは小さなモジュールのアプローチであり、ネット全体に散らばった多くのドキュメントや例につながり、チュートリアルについてだけ話します。

4

1 に答える 1

0

私の知る限り、フォーミダブルには s3 storage オプションがないため、フォーミダブル以外のモジュールを使用する必要があります。アップロードする前にサーバーにファイルを保存する必要があります。使用することをお勧めします:マルチパーティ

サーバーにローカルに保存せずに S3 に直接アップロードするには、この例を使用します。

于 2016-05-29T14:27:19.027 に答える