mirror of
https://github.com/gofiber/storage.git
synced 2025-10-06 09:07:14 +08:00
implement DeleteMany()
This commit is contained in:
@@ -36,6 +36,32 @@ func (s *Storage) DeleteBucket(bucket string) error {
|
|||||||
return err
|
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.
|
// SetWithChecksum sets key with value and checksum.
|
||||||
//
|
//
|
||||||
// Currently 4 algorithms are supported:
|
// Currently 4 algorithms are supported:
|
||||||
|
@@ -18,6 +18,34 @@ func Test_S3_CreateDeleteBucket(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
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) {
|
func Test_S3_SetWithChecksum(t *testing.T) {
|
||||||
var (
|
var (
|
||||||
key = "set-with-checksum"
|
key = "set-with-checksum"
|
||||||
|
Reference in New Issue
Block a user