public void Dispose()
{
var objectsRequest = new ListObjectsRequest
{
BucketName = Config["Bucket"],
Prefix = ContainerPrefix,
MaxKeys = 100000
};
var keys = new List<KeyVersion>();
do
{
var objectsResponse = _client.ListObjectsAsync(objectsRequest).Result;
keys.AddRange(objectsResponse.S3Objects
.Select(x => new KeyVersion() { Key = x.Key, VersionId = null }));
// If response is truncated, set the marker to get the next set of keys.
if (objectsResponse.IsTruncated)
{
objectsRequest.Marker = objectsResponse.NextMarker;
}
else
{
objectsRequest = null;
}
} while (objectsRequest != null);
if (keys.Count > 0)
{
var objectsDeleteRequest = new DeleteObjectsRequest()
{
BucketName = Config["Bucket"],
Objects = keys
};
_client.DeleteObjectsAsync(objectsDeleteRequest).Wait();
}
}
}