mirror of
https://github.com/vbatts/imgsrv.git
synced 2024-11-14 20:58:37 +00:00
rearranging
This commit is contained in:
parent
c9f9cf68bb
commit
3a899e1daa
3 changed files with 78 additions and 77 deletions
25
get.go
25
get.go
|
@ -5,28 +5,3 @@ import (
|
||||||
"labix.org/v2/mgo/bson"
|
"labix.org/v2/mgo/bson"
|
||||||
)
|
)
|
||||||
|
|
||||||
/* gfs is a *mgo.GridFS defined in imgsrv.go */
|
|
||||||
|
|
||||||
func GetFileByFilename(filename string) (this_file File, err error) {
|
|
||||||
err = gfs.Find(bson.M{"filename":filename}).One(&this_file)
|
|
||||||
if (err != nil) {
|
|
||||||
return this_file, err
|
|
||||||
}
|
|
||||||
return this_file, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetFileRandom() (this_file File, err error) {
|
|
||||||
r := rand.Int63()
|
|
||||||
err = gfs.Find(bson.M{"random": bson.M{"$gt" : r } }).One(&this_file)
|
|
||||||
if (err != nil) {
|
|
||||||
return this_file, err
|
|
||||||
}
|
|
||||||
if (len(this_file.Md5) == 0) {
|
|
||||||
err = gfs.Find(bson.M{"random": bson.M{"$lt" : r } }).One(&this_file)
|
|
||||||
}
|
|
||||||
if (err != nil) {
|
|
||||||
return this_file, err
|
|
||||||
}
|
|
||||||
return this_file, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
26
has.go
26
has.go
|
@ -2,9 +2,35 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"math/rand"
|
||||||
"labix.org/v2/mgo/bson"
|
"labix.org/v2/mgo/bson"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
/* gfs is a *mgo.GridFS defined in imgsrv.go */
|
||||||
|
|
||||||
|
func GetFileByFilename(filename string) (this_file File, err error) {
|
||||||
|
err = gfs.Find(bson.M{"filename":filename}).One(&this_file)
|
||||||
|
if (err != nil) {
|
||||||
|
return this_file, err
|
||||||
|
}
|
||||||
|
return this_file, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetFileRandom() (this_file File, err error) {
|
||||||
|
r := rand.Int63()
|
||||||
|
err = gfs.Find(bson.M{"random": bson.M{"$gt" : r } }).One(&this_file)
|
||||||
|
if (err != nil) {
|
||||||
|
return this_file, err
|
||||||
|
}
|
||||||
|
if (len(this_file.Md5) == 0) {
|
||||||
|
err = gfs.Find(bson.M{"random": bson.M{"$lt" : r } }).One(&this_file)
|
||||||
|
}
|
||||||
|
if (err != nil) {
|
||||||
|
return this_file, err
|
||||||
|
}
|
||||||
|
return this_file, nil
|
||||||
|
}
|
||||||
|
|
||||||
/* Check whether this File filename is on Mongo */
|
/* Check whether this File filename is on Mongo */
|
||||||
func HasFileByFilename(filename string) (exists bool, err error) {
|
func HasFileByFilename(filename string) (exists bool, err error) {
|
||||||
c, err := gfs.Find(bson.M{"filename": filename}).Count()
|
c, err := gfs.Find(bson.M{"filename": filename}).Count()
|
||||||
|
|
104
imgsrv.go
104
imgsrv.go
|
@ -64,6 +64,58 @@ type File struct {
|
||||||
ContentType string "contentType,omitempty"
|
ContentType string "contentType,omitempty"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
flag.Parse()
|
||||||
|
for _, arg := range flag.Args() {
|
||||||
|
// What to do with these floating args ...
|
||||||
|
log.Printf("%s", arg)
|
||||||
|
}
|
||||||
|
|
||||||
|
// loads either default or flag specified config
|
||||||
|
// to override variables
|
||||||
|
loadConfiguration(ConfigFile)
|
||||||
|
|
||||||
|
if (len(FetchUrl) > 0) {
|
||||||
|
file, err := FetchFileFromURL(FetchUrl)
|
||||||
|
if (err != nil) {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Println(file)
|
||||||
|
} else if (RunAsServer) {
|
||||||
|
log.Printf("%s", ServerIP)
|
||||||
|
runServer(ServerIP,ServerPort)
|
||||||
|
} else {
|
||||||
|
if (len(RemoteHost) == 0) {
|
||||||
|
log.Println("Please provide a remotehost!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (len(PutFile) == 0 ) { //&& len(flag.Args()) == 0) {
|
||||||
|
log.Println("Please provide files to be uploaded!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_,basename := filepath.Split(PutFile)
|
||||||
|
queryParams := "?filename=" + basename
|
||||||
|
if (len(FileKeywords) > 0) {
|
||||||
|
queryParams = queryParams + "&keywords=" + FileKeywords
|
||||||
|
} else {
|
||||||
|
log.Println("WARN: you didn't provide any keywords :-(")
|
||||||
|
}
|
||||||
|
url, err := url.Parse(RemoteHost + "/f/" + queryParams)
|
||||||
|
if (err != nil) {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Printf("POSTing: %s\n", url.String())
|
||||||
|
url_path, err := PutFileFromPath(url.String(), PutFile)
|
||||||
|
if (err != nil) {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Printf("New Image!: %s%s\n", RemoteHost, url_path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* http://golang.org/doc/effective_go.html#init */
|
/* http://golang.org/doc/effective_go.html#init */
|
||||||
func init() {
|
func init() {
|
||||||
flag.StringVar(&ConfigFile,
|
flag.StringVar(&ConfigFile,
|
||||||
|
@ -171,55 +223,3 @@ func loadConfiguration(filename string) (c Config) {
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
|
||||||
flag.Parse()
|
|
||||||
for _, arg := range flag.Args() {
|
|
||||||
// What to do with these floating args ...
|
|
||||||
log.Printf("%s", arg)
|
|
||||||
}
|
|
||||||
|
|
||||||
// loads either default or flag specified config
|
|
||||||
// to override variables
|
|
||||||
loadConfiguration(ConfigFile)
|
|
||||||
|
|
||||||
if (len(FetchUrl) > 0) {
|
|
||||||
file, err := FetchFileFromURL(FetchUrl)
|
|
||||||
if (err != nil) {
|
|
||||||
log.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.Println(file)
|
|
||||||
} else if (RunAsServer) {
|
|
||||||
log.Printf("%s", ServerIP)
|
|
||||||
runServer(ServerIP,ServerPort)
|
|
||||||
} else {
|
|
||||||
if (len(RemoteHost) == 0) {
|
|
||||||
log.Println("Please provide a remotehost!")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (len(PutFile) == 0 ) { //&& len(flag.Args()) == 0) {
|
|
||||||
log.Println("Please provide files to be uploaded!")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
_,basename := filepath.Split(PutFile)
|
|
||||||
queryParams := "?filename=" + basename
|
|
||||||
if (len(FileKeywords) > 0) {
|
|
||||||
queryParams = queryParams + "&keywords=" + FileKeywords
|
|
||||||
} else {
|
|
||||||
log.Println("WARN: you didn't provide any keywords :-(")
|
|
||||||
}
|
|
||||||
url, err := url.Parse(RemoteHost + "/f/" + queryParams)
|
|
||||||
if (err != nil) {
|
|
||||||
log.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.Printf("POSTing: %s\n", url.String())
|
|
||||||
url_path, err := PutFileFromPath(url.String(), PutFile)
|
|
||||||
if (err != nil) {
|
|
||||||
log.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.Printf("New Image!: %s%s\n", RemoteHost, url_path)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue