我在Sitemap.xml
上有一个名为Server1
的文件,我想从另一台服务器Server2
写入此文件。
Server1
服务器1:
Sitemap
可由Server1/sitemap
访问,因为我在我的快递文件中使用了以下代码
app.use('/sitemap', express.static(__dirname + '/sitemap.xml'));
答案 0 :(得分:0)
您应该使用秘密令牌保护路由以避免暴露。希望这会对你有所帮助:
// Server 1
const fs = require('fs');
app.use(function(req, res, next) {
var secret = req.headers.hasOwnProperty('authorization')
? req.headers.authorization
: false;
if (! secret || secret !== 'token [your-secret-token]') {
res.status(403).send('Access forbidden');
}
// Create write stream to sitemap file
var stream = fs.createWriteStream('sitemap.xml');
// Redirect request body to stream which writes to sitemap file
req.pipe(stream)
.on('end', () => res.send('ok'));
});
// Server 2
const http = require('http');
const fs = require('fs');
var stream = fs.createReadStream('new-sitemap.xml');
var req = http.request({
host: 'server1',
headers: {
authorization: 'token [your-secret-token]',
},
});
req.on('response', (res) => {
if (res.status === 200) {
console.log('File uploaded');
}
else {
console.error('File not loaded');
}
});
// Write data from file into request body
stream.pipe(req);
请注意,令牌最小32个字符长度应足够强。不要忘记不时更新它。而且这也是一个概念。