Merge pull request #128 from aspacca/ISSUE-44

ISSUE-44 delete support
This commit is contained in:
Andrea Spacca
2018-07-01 14:17:11 +02:00
committed by GitHub
3 changed files with 100 additions and 6 deletions

View File

@ -27,6 +27,7 @@ type Storage interface {
Get(token string, filename string) (reader io.ReadCloser, contentType string, contentLength uint64, err error)
Head(token string, filename string) (contentType string, contentLength uint64, err error)
Put(token string, filename string, reader io.Reader, contentType string, contentLength uint64) error
Delete(token string, filename string) error
IsNotExist(err error) bool
Type() string
@ -80,6 +81,15 @@ func (s *LocalStorage) Get(token string, filename string) (reader io.ReadCloser,
return
}
func (s *LocalStorage) Delete(token string, filename string) (err error) {
metadata := filepath.Join(s.basedir, token, fmt.Sprintf("%s.metadata", filename))
os.Remove(metadata);
path := filepath.Join(s.basedir, token, filename)
err = os.Remove(path);
return
}
func (s *LocalStorage) IsNotExist(err error) bool {
if err == nil {
return false
@ -180,6 +190,16 @@ func (s *S3Storage) Get(token string, filename string) (reader io.ReadCloser, co
return
}
func (s *S3Storage) Delete(token string, filename string) (err error) {
metadata := fmt.Sprintf("%s/%s.metadata", token, filename)
s.bucket.Del(metadata)
key := fmt.Sprintf("%s/%s", token, filename)
err = s.bucket.Del(key)
return
}
func (s *S3Storage) Put(token string, filename string, reader io.Reader, contentType string, contentLength uint64) (err error) {
key := fmt.Sprintf("%s/%s", token, filename)
@ -480,6 +500,20 @@ func (s *GDrive) Get(token string, filename string) (reader io.ReadCloser, conte
return
}
func (s *GDrive) Delete(token string, filename string) (err error) {
metadata, _ := s.findId(fmt.Sprintf("%s.metadata", filename), token)
s.service.Files.Delete(metadata).Do()
var fileId string
fileId, err = s.findId(filename, token)
if err != nil {
return
}
err = s.service.Files.Delete(fileId).Do()
return
}
func (s *GDrive) IsNotExist(err error) bool {
if err == nil {
return false