合并存储在 Amazon S3 上的 pdf 文件

Merging pdf files stored on Amazon S3

目前我正在使用 pdfbox 下载我服务器上的所有 pdf 文件,然后使用 pdfbox 将它们合并在一起。它工作得很好,但速度很慢——因为我必须全部下载它们。

有没有办法直接在 S3 上执行所有这些操作?我正在尝试找到一种方法来做到这一点,即使不在 java 也在 python 并且无法这样做。

我阅读了以下内容:

Merging files on S3 Amazon

https://github.com/boazsegev/combine_pdf/issues/18

是否可以合并存储在 S3 中的文件而无需下载它们?

编辑

我最终采用的方法是使用 concurrent.futures 并使用 concurrent.futures.ThreadPoolExecutor 实现它。我设置了最多 8 个工作线程来从 s3 下载所有 pdf 文件。

下载所有文件后,我将它们与 pdfbox 合并。简单。

S3 只是一个数据存储,因此在某种程度上,您需要将 PDF 文件从 S3 传输到服务器,然后再传输回来。通过在与 S3 存储桶位于同一区域的 EC2 实例上进行转换,您可能会获得最佳速度。

如果您不想自己启动 EC2 实例来执行此操作,那么另一种选择可能是使用 AWS Lambda,这是一种计算服务,您可以在其中上传代码并拥有AWS 管理它的执行。