Löschen implementiert
All checks were successful
Build & Deploy PLDpro.Web Test to 192.168.1.100 / build-and-deploy (push) Successful in 1m16s
All checks were successful
Build & Deploy PLDpro.Web Test to 192.168.1.100 / build-and-deploy (push) Successful in 1m16s
This commit is contained in:
@@ -6,6 +6,7 @@ public interface IStorageMetadataRepository
|
||||
Task EnsureSchemaAsync(CancellationToken ct = default);
|
||||
Task UpsertAsync(string bucket, string fileName, string? path, string key, long? size, string? contentType, CancellationToken ct = default);
|
||||
Task<StorageObject?> TryGetAsync(string bucket, string fileName, CancellationToken ct = default);
|
||||
Task DeleteByKeyAsync(string bucket, string key, CancellationToken ct = default);
|
||||
}
|
||||
|
||||
public sealed record StorageObject(
|
||||
|
||||
@@ -90,4 +90,19 @@ public sealed class StorageMetadataRepository : IStorageMetadataRepository
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public async Task DeleteByKeyAsync(string bucket, string key, CancellationToken ct = default)
|
||||
{
|
||||
const string sql = """
|
||||
DELETE FROM storage_objects
|
||||
WHERE bucket = @bucket AND s3_key = @key;
|
||||
""";
|
||||
await using var conn = new MySqlConnector.MySqlConnection(_connStr);
|
||||
await conn.OpenAsync(ct);
|
||||
await using var cmd = new MySqlConnector.MySqlCommand(sql, conn);
|
||||
cmd.Parameters.AddWithValue("@bucket", bucket);
|
||||
cmd.Parameters.AddWithValue("@key", key);
|
||||
await cmd.ExecuteNonQueryAsync(ct);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user