feat: add GetHash
This commit is contained in:
parent
62e22d0d39
commit
61696f42b8
|
@ -8,4 +8,5 @@ type StorageService interface {
|
||||||
CIDExists(cid interface {
|
CIDExists(cid interface {
|
||||||
ToString() (string, error)
|
ToString() (string, error)
|
||||||
}) bool
|
}) bool
|
||||||
|
GetHash(file io.ReadSeeker) ([]byte, error)
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,20 +28,17 @@ func NewStorageService(portal interfaces.Portal) interfaces.StorageService {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s StorageServiceImpl) PutFile(file io.ReadSeeker, bucket string, generateProof bool) ([]byte, error) {
|
func (s StorageServiceImpl) PutFile(file io.ReadSeeker, bucket string, generateProof bool) ([]byte, error) {
|
||||||
buf := bytes.NewBuffer(nil)
|
|
||||||
|
|
||||||
_, err := io.Copy(buf, file)
|
hash, err := s.GetHash(file)
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
hash := blake3.Sum512(buf.Bytes())
|
|
||||||
hashStr, err := encoding.NewMultihash(hash[:]).ToBase64Url()
|
hashStr, err := encoding.NewMultihash(hash[:]).ToBase64Url()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
buf.Reset()
|
_, err = file.Seek(0, io.SeekStart)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
err = s.createBucketIfNotExists(bucket)
|
err = s.createBucketIfNotExists(bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -53,7 +50,7 @@ func (s StorageServiceImpl) PutFile(file io.ReadSeeker, bucket string, generateP
|
||||||
SetFormData(map[string]string{
|
SetFormData(map[string]string{
|
||||||
"bucket": bucket,
|
"bucket": bucket,
|
||||||
}).
|
}).
|
||||||
SetBody(buf).Put("/api/worker/objects/{path}")
|
SetBody(file).Put("/api/worker/objects/{path}")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -120,3 +117,16 @@ func (s *StorageServiceImpl) CIDExists(cid interface {
|
||||||
|
|
||||||
return count > 0
|
return count > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *StorageServiceImpl) GetHash(file io.ReadSeeker) ([]byte, error) {
|
||||||
|
buf := bytes.NewBuffer(nil)
|
||||||
|
|
||||||
|
_, err := io.Copy(buf, file)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
hash := blake3.Sum512(buf.Bytes())
|
||||||
|
|
||||||
|
return hash[:], nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue