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) { 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) err := os.MkdirAll(dir, 0755)
return dir, err return dir, err
} }
@ -81,6 +81,18 @@ func (s *Service) FileCreate(c *gin.Context) {
s.Error(c, http.StatusInternalServerError, err) s.Error(c, http.StatusInternalServerError, err)
return 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() sum := sha1.New()
size := uint64(0) size := uint64(0)
@ -90,7 +102,16 @@ func (s *Service) FileCreate(c *gin.Context) {
s.Error(c, http.StatusInternalServerError, err) s.Error(c, http.StatusInternalServerError, err)
return 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)) size += uint64(len(b))
} }
r := hex.EncodeToString(sum.Sum(nil)) r := hex.EncodeToString(sum.Sum(nil))