1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
16
17 package azure
18
19 import (
20 "context"
21
22 "go4.org/syncutil"
23 "perkeep.org/pkg/blob"
24 )
25
26 var removeGate = syncutil.NewGate(20)
27
28 func (sto *azureStorage) RemoveBlobs(ctx context.Context, blobs []blob.Ref) error {
29 if sto.cache != nil {
30 sto.cache.RemoveBlobs(ctx, blobs)
31 }
32 var wg syncutil.Group
33
34 for _, blob := range blobs {
35 blob := blob
36 removeGate.Start()
37 wg.Go(func() error {
38 defer removeGate.Done()
39 return sto.azureClient.Delete(ctx, sto.container, blob.String())
40 })
41 }
42 return wg.Err()
43 }