diff --git a/src/Akka.Persistence.Azure/Snapshot/AzureBlobSnapshotStore.cs b/src/Akka.Persistence.Azure/Snapshot/AzureBlobSnapshotStore.cs index ee23b674..eb6fada2 100644 --- a/src/Akka.Persistence.Azure/Snapshot/AzureBlobSnapshotStore.cs +++ b/src/Akka.Persistence.Azure/Snapshot/AzureBlobSnapshotStore.cs @@ -260,7 +260,21 @@ protected override async Task DeleteAsync(SnapshotMetadata metadata) cts.CancelAfter(_settings.RequestTimeout); using (cts) { - await blobClient.DeleteIfExistsAsync(cancellationToken: cts.Token); + if (metadata.Timestamp == DateTime.MinValue) + { + // Short-circuit the timestamp query if the metadata does not require us to check for timestamp + await blobClient.DeleteIfExistsAsync(cancellationToken: cts.Token); + } + else + { + var response = await blobClient.GetPropertiesAsync(cancellationToken: cts.Token); + if (response.HasValue) + { + var timestamp = new DateTime(long.Parse(response.Value.Metadata[TimeStampMetaDataKey])); + if(timestamp <= metadata.Timestamp) + await blobClient.DeleteAsync(cancellationToken: cts.Token); + } + } } } diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 50e56a30..f70f04cd 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -1,7 +1,7 @@ true - 1.5.26 + 1.5.28 1.5.25