Mercurial > mercurial > hgweb_rsearcher.cgi
diff go/server.go @ 12:240752cbe11b
db-upload.(by go)
author | pyon@macmini |
---|---|
date | Tue, 13 Nov 2018 21:11:20 +0900 |
parents | 82f9af6aa7e4 |
children | f5ffc34f045a |
line wrap: on
line diff
--- a/go/server.go Mon Nov 12 19:35:50 2018 +0900 +++ b/go/server.go Tue Nov 13 21:11:20 2018 +0900 @@ -1,7 +1,7 @@ /* server.go : server-program. - Version : 1.1 - Last Change: 2018-10-29 月 14:58:19. + Version : 1.3 + Last Change: 2018-11-13 火 08:19:52. install to: server_root/ @@ -32,7 +32,7 @@ ) func init() { - version = "1.2" // log version + version = "1.3" // manage-db version port = ":3910" server_root = filepath.Dir( os.Args[0] ) logfile = filepath.Join( server_root, "rsearcher.log" ) @@ -57,6 +57,7 @@ fmt.Println( "server start [", server, "] ( program version", version, ")" ) http.HandleFunc( "/", handler ) http.HandleFunc( "/upload", upload_handler ) + http.HandleFunc( "/mngdb/", mngdb_handler ) log.Fatal( http.ListenAndServe( server, nil ) ) } @@ -98,6 +99,26 @@ w.Write( []byte( fmt.Sprintf( "%d bytes are recieved.\n", n ) ) ) } +func mngdb_handler( w http.ResponseWriter, r *http.Request ) { + fmt.Println( "[access]", r.RemoteAddr, "|", time.Now().Format( "2006-01-02 15:04" ), "|", "/mngdb" ) + write_log( "[access] " + r.RemoteAddr + "manage-db" ) + db := r.URL.Path[ len( "/mngdb/" ): ] + + file := filepath.Join( server_root, "db", db ) + + f, err := os.Create( file ) + if err != nil { + http.NotFound( w, r ) + return + } + _, err = io.Copy( f, r.Body ) + if err != nil { + http.NotFound( w, r ) + return + } + f.Close() +} + func write_log( msg string ) { f, err := os.OpenFile( logfile, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644 ) if err != nil {