繁体   English   中英

如何使用Spring Boot从S3下载json文件?

[英]How can I download json file from S3 using Spring Boot?

我在S3存储桶中有一个包含json文件的文件夹。 我正在使用Spring Boot。 用户提供folder name和特定文件( json file )名称。

public ResponseEntity<?> downloading(String folderName, String fileName) throws IOException {
    S3Object s3Object = s3client
            .getObject(new GetObjectRequest(s3BucketName, folderName + fileName));
    if (s3Object.getKey().length() > 0) {
      //enables the user to dowload json file
      //return the object that can be dowloaded, status code 
      return new ResponseEntity<>( HttpStatus.OK);
    }
    else{
      //return error message and status code 
      return new ResponseEntity<>( HttpStatus.NOT_FOUND);
    }
   }

我从这里转达了答案。

因此,我仅添加了部分代码,可以为您提供帮助:

public ResponseEntity<byte[]> downloading(String folderName, String fileName) {
    S3Object s3Object = s3client
            .getObject(new GetObjectRequest(s3BucketName, folderName + fileName));
    if (s3Object.getKey().length() > 0) {
      S3ObjectInputStream input = s3Object.getObjectContent();
      byte[] bytes = IOUtils.toByteArray(input);
      String file = URLEncoder.encode(s3Object.getKey(), "UTF-8").replaceAll("\\+", "%20");
      HttpHeaders headers = new HttpHeaders();
      headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
      headers.setContentLength(bytes.length);
      headers.setContentDispositionFormData("attachment", file);
      return new ResponseEntity<byte[]>(bytes, HttpStatus.OK);
    } 
    return new ResponseEntity<byte[]>(null, HttpStatus.NOT_FOUND);
}

谢谢。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM