关于 java:S3 文件作为 PDFBox 的输入

S3 file as input to PDFBox

我已经尝试使用 Apache PDFBox 从 PDF 文件中提取内容,当我只是提取本地 PDF 时效果很好。

但我要解析的实际输入 PDF 位于 S3 存储桶中。

我可以使用下面的代码读取 S3 对象,

1
2
3
4
final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.US_WEST_2).withCredentials(awsCredentailsService()).build();
        S3Object object = s3.getObject(new GetObjectRequest(bucketName, key));

        InputStream ins = object.getObjectContent();

但我无法弄清楚如何将此文件传递给 PDFBox 以获取内容。 PDFBox load() 方法需要一个 File 对象。我尝试传递上面从 S3Object 获得的输入流(ins),但它不接受 - 编译错误。

1
PDDocument doc = PDDocument.load(pdfFile);

请帮忙。


刚刚将 inputStream 传递给 load 方法。它有效!

1
2
3
4
S3Object object = s3.getObject(new GetObjectRequest(s3BucketName, key));
InputStream ins = object.getObjectContent();

PDDocument doc = PDDocument.load(ins);