moved the database-go project to this repository
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
func SaveData1(path string, data []byte) error {
|
||||
file, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0664)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
_, err = file.Write(data)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return file.Sync()
|
||||
}
|
||||
|
||||
func SaveData2(path string, data []byte) error {
|
||||
tmp := fmt.Sprintf("%s.tmp.%d", path, randomInt())
|
||||
file, err := os.OpenFile(tmp, os.O_WRONLY|os.O_CREATE|os.O_EXCL, 0664)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer func () {
|
||||
file.Close()
|
||||
if err != nil {
|
||||
os.Remove(tmp)
|
||||
}
|
||||
}()
|
||||
|
||||
if _, err = file.Write(data); err != nil {
|
||||
return err
|
||||
}
|
||||
if err = file.Sync(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = os.Rename(tmp, path)
|
||||
return err
|
||||
}
|
||||
Reference in New Issue
Block a user