Validate access with OPTIONS before doing a PUT

This commit is contained in:
rubyist 2014-04-01 11:17:04 -04:00 committed by Rick Olson
parent 11cdd54e49
commit 1d93b80106
2 changed files with 27 additions and 1 deletions

@ -21,6 +21,26 @@ const (
gitMediaHeader = "0014 git media v1\n"
)
func Options(filehash string) error {
oid := filepath.Base(filehash)
_, err := os.Stat(filehash)
if err != nil {
return err
}
req, creds, err := clientRequest("OPTIONS", oid)
if err != nil {
return err
}
_, err = doRequest(req, creds)
if err != nil {
return err
}
return nil
}
func Put(filehash, filename string) error {
if filename == "" {
filename = filehash

@ -23,7 +23,13 @@ func (c *SyncCommand) Run() {
}
path := gitmedia.LocalMediaPath(sha)
err := gitmediaclient.Put(path, filename)
err := gitmediaclient.Options(path)
if err != nil {
gitmedia.Panic(err, "error uploading file %s", filename)
}
err = gitmediaclient.Put(path, filename)
if err != nil {
gitmedia.Panic(err, "error uploading file %s", sha)
}