- commit
- d01276a
- parent
- cda5bd5
- author
- Eric Bower
- date
- 2025-06-21 08:01:20 -0400 EDT
fix(fs): dont fail when listing or deleting that dont exist
2 files changed,
+19,
-1
+7,
-1
1@@ -174,6 +174,9 @@ func (s *StorageFS) DeleteObject(bucket Bucket, fpath string) error {
2 loc := filepath.Join(bucket.Path, fpath)
3 err := os.Remove(loc)
4 if err != nil {
5+ if os.IsNotExist(err) {
6+ return nil
7+ }
8 return err
9 }
10
11@@ -208,12 +211,15 @@ func (s *StorageFS) ListBuckets() ([]string, error) {
12 }
13
14 func (s *StorageFS) ListObjects(bucket Bucket, dir string, recursive bool) ([]os.FileInfo, error) {
15- var fileList []os.FileInfo
16+ fileList := []os.FileInfo{}
17
18 fpath := path.Join(bucket.Path, dir)
19
20 info, err := os.Stat(fpath)
21 if err != nil {
22+ if os.IsNotExist(err) {
23+ return fileList, nil
24+ }
25 return fileList, err
26 }
27
1@@ -141,6 +141,12 @@ func TestFsAdapter(t *testing.T) {
2 t.Fatal(cmp.Diff(objs, expectedObjs, ignore))
3 }
4
5+ // it should not error if folder doesn't exist
6+ _, err = st.ListObjects(bucket, "/not-real", true)
7+ if err != nil {
8+ t.Fatal(err)
9+ }
10+
11 // list buckets
12 aBucket, _ := st.UpsertBucket("another")
13 _, _ = st.UpsertBucket("and-another")
14@@ -183,6 +189,12 @@ func TestFsAdapter(t *testing.T) {
15 t.Fatal("containing folder should have been deleted")
16 }
17
18+ // it should not error if file doesn't exist
19+ err = st.DeleteObject(bucket, "nice/not-real.txt")
20+ if err != nil {
21+ t.Fatal(err)
22+ }
23+
24 str = "a deeply nested test file"
25 reader = strings.NewReader(str)
26 _, _, err = st.PutObject(bucket, "./here/yes/we/can.txt", reader, &utils.FileEntry{