software.amazon.awssdk.transfer.s3.S3TransferManager; 怎么下载文件流给前端
时间: 2023-11-23 12:06:54 浏览: 203
要下载文件流给前端,你可以使用 S3TransferManager 类的 download 方法来下载文件,然后将文件流写入 HttpServletResponse 对象返回给前端。
以下是一个 Java Servlet 的例子:
```java
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String bucketName = "my-bucket";
String key = "my-file.txt";
S3Client s3Client = S3Client.create();
S3TransferManager transferManager = S3TransferManager.builder()
.s3Client(s3Client)
.build();
ResponseBytes<GetObjectResponse> objectResponse = transferManager.download(GetObjectRequest.builder()
.bucket(bucketName)
.key(key)
.build(), ResponseTransformer.toBytes());
byte[] fileBytes = objectResponse.asByteArray();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=\"my-file.txt\"");
response.getOutputStream().write(fileBytes);
}
```
在这个例子中,我们首先创建 S3TransferManager 对象并使用它的 download 方法下载文件。然后,我们将文件的字节数组设置为响应的内容,并将响应的 Content-Disposition 头设置为“attachment”,这将提示浏览器下载文件而不是在浏览器中打开它。最后,我们将文件字节数组写入响应输出流中。
阅读全文