write final file

This commit is contained in:
celogeek 2022-03-01 15:44:46 +01:00
parent 1c5b200151
commit fbc1c37f9b
Signed by: celogeek
GPG Key ID: E6B7BDCFC446233A

View File

@ -29,7 +29,7 @@ func (s *Service) PrepareStore() {
}
func (s *Service) StoreDir(checksum string) (string, error) {
dir := filepath.Join(s.Config.StorePath, "original", checksum[0:0], checksum[1:1], checksum[2:])
dir := filepath.Join(s.Config.StorePath, "original", checksum[0:1], checksum[1:2], checksum)
err := os.MkdirAll(dir, 0755)
return dir, err
}
@ -81,6 +81,18 @@ func (s *Service) FileCreate(c *gin.Context) {
s.Error(c, http.StatusInternalServerError, err)
return
}
dir, err := s.StoreDir(originalChecksum)
if err != nil {
s.Error(c, http.StatusInternalServerError, err)
return
}
data, err := os.Create(filepath.Join(dir, ".tmp"))
if err != nil {
s.Error(c, http.StatusInternalServerError, err)
return
}
defer data.Close()
sum := sha1.New()
size := uint64(0)
@ -90,7 +102,16 @@ func (s *Service) FileCreate(c *gin.Context) {
s.Error(c, http.StatusInternalServerError, err)
return
}
sum.Write(b)
_, err = sum.Write(b)
if err != nil {
s.Error(c, http.StatusInternalServerError, err)
return
}
_, err = data.Write(b)
if err != nil {
s.Error(c, http.StatusInternalServerError, err)
return
}
size += uint64(len(b))
}
r := hex.EncodeToString(sum.Sum(nil))