mirror of
https://github.com/gofiber/storage.git
synced 2025-10-05 08:37:10 +08:00
implement DeleteMany()
This commit is contained in:
@@ -36,6 +36,32 @@ func (s *Storage) DeleteBucket(bucket string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// DeleteMany entries by keys.
|
||||
func (s *Storage) DeleteMany(keys ...string) error {
|
||||
if len(keys) <= 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
var objects []types.ObjectIdentifier
|
||||
for _, k := range keys {
|
||||
objects = append(objects, types.ObjectIdentifier{
|
||||
Key: aws.String(k),
|
||||
})
|
||||
}
|
||||
|
||||
ctx, cancel := s.requestContext()
|
||||
defer cancel()
|
||||
|
||||
_, err := s.svc.DeleteObjects(ctx, &s3.DeleteObjectsInput{
|
||||
Bucket: &s.bucket,
|
||||
Delete: &types.Delete{
|
||||
Objects: objects,
|
||||
},
|
||||
})
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// SetWithChecksum sets key with value and checksum.
|
||||
//
|
||||
// Currently 4 algorithms are supported:
|
||||
|
@@ -18,6 +18,34 @@ func Test_S3_CreateDeleteBucket(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func Test_S3_DeleteMany(t *testing.T) {
|
||||
val := []byte("doe")
|
||||
|
||||
err := testStore.Set("john1", val, 0)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = testStore.Set("john2", val, 0)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = testStore.Set("john3", val, 0)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = testStore.DeleteMany("john1", "john2")
|
||||
require.NoError(t, err)
|
||||
|
||||
result, err := testStore.Get("john1")
|
||||
require.NoError(t, err)
|
||||
require.Zero(t, len(result))
|
||||
|
||||
result, err = testStore.Get("john2")
|
||||
require.NoError(t, err)
|
||||
require.Zero(t, len(result))
|
||||
|
||||
result, err = testStore.Get("john3")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, val, result)
|
||||
}
|
||||
|
||||
func Test_S3_SetWithChecksum(t *testing.T) {
|
||||
var (
|
||||
key = "set-with-checksum"
|
||||
|
Reference in New Issue
Block a user