最近、Node.jsブログをAppFogにデプロイしました。Amazon S3のバケットを使用して、アセット(javascript / stylesheets / images)をストリーミングする予定です。
Express.jsが通常のアセットではなく静的アセットをAmazonS3バケットに確実に取得するにはどうすればよい/public
ですか?
最近、Node.jsブログをAppFogにデプロイしました。Amazon S3のバケットを使用して、アセット(javascript / stylesheets / images)をストリーミングする予定です。
Express.jsが通常のアセットではなく静的アセットをAmazonS3バケットに確実に取得するにはどうすればよい/public
ですか?
ノード サーバーを介してアセットをストリーミングするつもりはありません。これはリソースの無駄であり、HTTP キャッシュ ヘッダーを処理する必要があります。
代わりに、HTML は S3 バケットに直接リンクする必要があります。それ以外の:
<script src="/js/script.js"></script>
行う:
<script src="//s3.amazonaws.com/bucket/js/script.js"></script>
移行中なので、永続的なリダイレクトを設定するだけです。
app.get(/^\/(js|css|images)\/.*/, function(req, res) {
res.redirect(301, '//s3.amazonaws.com/bucket' + req.path);
});
これにより、js、css、および images フォルダー内のものに対するすべてのリクエストが S3 バケットにリダイレクトされます。たとえば、/js/script.js は //s3.amazonaws.com/bucket/js/script.js にリダイレクトされます。
これにより移行が容易になりますが、サイトの参照を S3 URL に移行して、リダイレクトによる不要な HTTP ラウンドトリップの原因を排除する必要があります。
本当にこれを行う必要がある場合は、リクエスト ライブラリの pipe() を使用してください: https://github.com/mikeal/request#streaming