Add filesize to file metadata
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
parent
889894a737
commit
17a484db91
@ -12,6 +12,8 @@ type File struct {
|
||||
ExpiresOn time.Time `json:"expires_on"`
|
||||
|
||||
Body io.ReadCloser
|
||||
|
||||
FileSize int64 `json:"file_size"`
|
||||
}
|
||||
|
||||
type FileStore interface {
|
||||
|
@ -40,10 +40,12 @@ func (s *FSFileStore) Store(f *File) error {
|
||||
}
|
||||
defer dst.Close()
|
||||
|
||||
if _, err := io.Copy(dst, f.Body); err != nil {
|
||||
n, err := io.Copy(dst, f.Body)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
s.metadata[f.ID] = metadata
|
||||
s.metadata[f.ID].FileSize = n
|
||||
if err := s.writeMetadata(); err != nil {
|
||||
delete(s.metadata, f.ID)
|
||||
return err
|
||||
|
@ -14,6 +14,7 @@ type fileData struct {
|
||||
|
||||
MaxViews uint
|
||||
ExpiresOn time.Time
|
||||
FileSize int64
|
||||
}
|
||||
|
||||
type MemoryFileStore struct {
|
||||
@ -35,9 +36,11 @@ func (s *MemoryFileStore) Store(f *File) error {
|
||||
ExpiresOn: f.ExpiresOn,
|
||||
}
|
||||
|
||||
_, err := io.Copy(&data.Body, f.Body)
|
||||
n, err := io.Copy(&data.Body, f.Body)
|
||||
_ = f.Body.Close()
|
||||
|
||||
data.FileSize = n
|
||||
|
||||
s.lock.Lock()
|
||||
defer s.lock.Unlock()
|
||||
|
||||
|
@ -92,6 +92,7 @@ func RunPersistentFilestoreTest(newStoreFunc func() files.FileStore, t *testing.
|
||||
MaxViews: 5,
|
||||
ExpiresOn: time.Now().Add(10 * time.Minute),
|
||||
Body: io.NopCloser(strings.NewReader("cocks!")),
|
||||
FileSize: 6,
|
||||
},
|
||||
ExpectedData: "cocks!",
|
||||
},
|
||||
@ -102,6 +103,7 @@ func RunPersistentFilestoreTest(newStoreFunc func() files.FileStore, t *testing.
|
||||
MaxViews: 5,
|
||||
ExpiresOn: time.Now().Add(10 * time.Minute),
|
||||
Body: io.NopCloser(strings.NewReader("derps!")),
|
||||
FileSize: 6,
|
||||
},
|
||||
ExpectedData: "derps!",
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user