diff --git a/internal/vaultik/snapshot.go b/internal/vaultik/snapshot.go index 21e796d..87d5ee8 100644 --- a/internal/vaultik/snapshot.go +++ b/internal/vaultik/snapshot.go @@ -988,6 +988,7 @@ func (v *Vaultik) listAllRemoteSnapshotIDs() ([]string, error) { log.Info("Listing all snapshots") objectCh := v.Storage.ListStream(v.ctx, "metadata/") + seen := make(map[string]bool) var snapshotIDs []string for object := range objectCh { if object.Err != nil { @@ -1002,14 +1003,8 @@ func (v *Vaultik) listAllRemoteSnapshotIDs() ([]string, error) { } if strings.HasSuffix(object.Key, "/") || strings.Contains(object.Key, "/manifest.json.zst") { sid := parts[1] - found := false - for _, id := range snapshotIDs { - if id == sid { - found = true - break - } - } - if !found { + if !seen[sid] { + seen[sid] = true snapshotIDs = append(snapshotIDs, sid) } }