Return 通过 servicestack 的响应和文件

Return a response and file via servicestack

我正在做一个项目,我们有一个数据库和一个单独的文件系统,它们都存储在同一台服务器上,并通过服务堆栈请求和响应进行访问。

数据库包含文件系统中给定文件的相关元数据,因此我们希望能够同时检索和存储这些文件和文档以防止孤立数据。

是否可以 return 在同一个响应中既有数据流(文件)又有响应 DTO?类似于 JsonServiceClient.PostFileWithRequest 允许将文件和请求 DTO 传递给服务器的方式。如果可能,服务器端和客户端如何处理?

在我的研究中,到目前为止,大多数应用程序似乎只是 return 响应文档或流,并且主要是通过使用 HttpResult

提前致谢!

不支持 MIME Multipart/mixed 响应,后者主要用于电子邮件,很少支持和用于 HTTP。使用文件下载响应发送附加元数据的最简单方法是使用 HTTP Headers,例如:

return new HttpResult(fileInfo) {
    Headers = {
      {"X-key", "value"}
    }
};

另一种选择是将文件的内容嵌入到 DTO 中:

class FileResponseWithMetadata
{
    public byte[] Data { get; set; }
    public string Key { get; set; }
}

对于 return 多个文件,您需要使用像 DotNetZip 和 return 这样的库来压缩文件。