forked from codeskyblue/gobuild
/
upload.go
41 lines (35 loc) · 824 Bytes
/
upload.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package main
import (
"io/ioutil"
"os/exec"
"path/filepath"
"github.com/qiniu/api/io"
"github.com/qiniu/api/rs"
)
const SCOPE = "gobuild-io"
func UploadFile(localFile string, destName string) (addr string, err error) {
policy := new(rs.PutPolicy)
policy.Scope = "gobuild-io"
uptoken := policy.Token(nil)
var ret io.PutRet
var extra = new(io.PutExtra)
err = io.PutFile(nil, &ret, uptoken, destName, localFile, extra)
if err != nil {
return
}
addr = "http://" + SCOPE + ".qiniudn.com/" + destName
return
}
func UploadLocal(file string) (addr string, err error) {
f, err := ioutil.TempFile("files/", "upload-")
if err != nil {
return
}
err = f.Close()
if err != nil {
return
}
exec.Command("cp", "-f", file, f.Name()).Run()
addr = "http://" + filepath.Join(opts.Hostname, f.Name())
return
}