合并存储在 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 管理它的执行。
目前我正在使用 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 管理它的执行。