ヘッダーを複製して適切なプロキシとリソースの読み込みを行うために、http.request を使用することをお勧めします。
これは、ポート 8080 でリッスンし、/skin/* ルートから要求した実際の URL を使用して特定のサーバーに要求を行うエクスプレスの例です。
var http = require('http'),
express = require('express'),
app = express();
app.get('/skin/*', function(req, res, next) {
var request = http.request({
hostname: 's3.amazonaws.com',
port: 80,
path: '/' + req.params[0],
method: req.method
}, function(response) {
if (response.statusCode == 200) {
res.writeHead(response.statusCode, response.headers);
response.pipe(res);
} else {
res.writeHead(response.statusCode);
res.end();
}
});
request.on('error', function(e) {
console.log('something went wrong');
console.log(e);
})
request.end();
});
app.listen(8080);
それをテストするには、自分のマシンで実行してから、次の場所に移動しhttp://localhost:8080/skin/nyc1940/qn01_GEO.png
ます。 Amazon からプロキシするイメージをロードし、そのヘッダーも返します。XML が S3 から送信されないようにするために、ヘッダーもカスタマイズできます (ファイルが存在しない場合)。
ヘッダーは s3.amazon からプロキシされるため、ヘッダーを設定する必要はありません。適切なヘッダーが確実に設定されます。
またaccess-control-allow-origin
、別のドメイン名からのリソースへの AJAX 要求の場合にのみ必要になるためです。とにかく、response.headers
送信する前に自由に変更してください。これは単純なオブジェクトです (console.log テスト用)。