test fixes and new product advisories work
This commit is contained in:
@@ -57,24 +57,28 @@ internal static class FederationEndpointExtensions
|
||||
CompressionLevel = compressLevel
|
||||
};
|
||||
|
||||
// Set response headers for streaming
|
||||
context.Response.ContentType = "application/zstd";
|
||||
var exportTimestamp = timeProvider.GetUtcNow().UtcDateTime;
|
||||
context.Response.Headers.ContentDisposition =
|
||||
$"attachment; filename=\"feedser-bundle-{exportTimestamp.ToString("yyyyMMdd-HHmmss", CultureInfo.InvariantCulture)}.zst\"";
|
||||
|
||||
// Export directly to response stream
|
||||
// Export to memory first so we can set headers before writing body
|
||||
// (HTTP headers must be set before any body content is written)
|
||||
using var bufferStream = new MemoryStream();
|
||||
var result = await exportService.ExportToStreamAsync(
|
||||
context.Response.Body,
|
||||
bufferStream,
|
||||
sinceCursor,
|
||||
exportOptions,
|
||||
cancellationToken);
|
||||
|
||||
// Add metadata headers
|
||||
// Now set all response headers before writing body
|
||||
context.Response.ContentType = "application/zstd";
|
||||
var exportTimestamp = timeProvider.GetUtcNow().UtcDateTime;
|
||||
context.Response.Headers.ContentDisposition =
|
||||
$"attachment; filename=\"feedser-bundle-{exportTimestamp.ToString("yyyyMMdd-HHmmss", CultureInfo.InvariantCulture)}.zst\"";
|
||||
context.Response.Headers.Append("X-Bundle-Hash", result.BundleHash);
|
||||
context.Response.Headers.Append("X-Export-Cursor", result.ExportCursor);
|
||||
context.Response.Headers.Append("X-Items-Count", result.Counts.Total.ToString());
|
||||
|
||||
// Write the buffered content to response
|
||||
bufferStream.Position = 0;
|
||||
await bufferStream.CopyToAsync(context.Response.Body, cancellationToken);
|
||||
|
||||
return HttpResults.Empty;
|
||||
})
|
||||
.WithName("ExportFederationBundle")
|
||||
|
||||
Reference in New Issue
Block a user