Web 服务是否可以返回流?
2022-09-01 14:39:52
我一直在写一个小应用程序,让人们上传和下载文件给我。我已经向此应用程序添加了一个Web服务,以以这种方式提供上传/下载功能,但我不太确定我的实现将如何应对大文件。
目前,上传和下载方法的定义如下所示(使用Apache CXF编写):
boolean uploadFile(@WebParam(name = "username") String username,
@WebParam(name = "password") String password,
@WebParam(name = "filename") String filename,
@WebParam(name = "fileContents") byte[] fileContents)
throws UploadException, LoginException;
byte[] downloadFile(@WebParam(name = "username") String username,
@WebParam(name = "password") String password,
@WebParam(name = "filename") String filename) throws DownloadException,
LoginException;
因此,文件将作为字节数组上传和下载。但是,如果我有一个愚蠢大小的文件(例如1GB),这肯定会尝试将所有信息放入内存中并使我的服务崩溃。
所以我的问题是 - 是否可以返回某种流?不过,我想这不会是独立于操作系统的。虽然我知道Web服务背后的理论,但实际的方面是我仍然需要学习一些信息的东西。
为任何输入干杯,李