if ( req.http.X-Real-IP ~ (111.111.111.111|222.222.222.222) ) { return (synth(403, Forbidden - administrator only)); }
ACLの設定
acl bad_ips { 111.111.111.111; 222.222.222.222; } sub vcl_recv { if ( std.ip(req.http.X-Real-IP, 0.0.0.0) ~ bad_ips) { return (synth(403, Forbidden)); } }
なかなかいいね
]]>Sidekiq::Queue.new.clear]]>
var GoogleSpreadsheet = require('google-spreadsheet'); var my_sheet = new GoogleSpreadsheet('*******************************'); var creds = require('./secret.json'); my_sheet.useServiceAccountAuth(creds, function(err){ // getInfo returns info about the sheet and an array or "worksheet" objects my_sheet.getInfo( function( err, sheet_info ){ console.log( sheet_info.title + ' is loaded' ); // use worksheet object if you want to stop using the # in your calls var sheet1 = sheet_info.worksheets[0]; sheet1.addRow( {name: "hoge",email: "hoge@gmail.com"},function(err){ if (err){ console.log("エラー発生"); } }); sheet1.getRows({ start: 2, max: 100, orderby: 'name' }, function(err, row_data){ for (var i in row_data) { console.log(row_data[i].name+" => "+row_data[i].email); } }); }); })実行
$ node test.js初心者には厳しかったですよ ]]>
test is loaded
hoge => hoge@hoge.com