目前我正在使用pdfbox在我的服务器上下载所有pdf文件,然后使用pdfbox将它们合并在一起。它的工作非常好,但速度非常慢 - 因为我必须全部下载它们。
有没有办法直接在S3上执行所有这些操作?我正试图找到一种方法来做到这一点,即使不是在python中的java也无法这样做。
我读了以下内容:
https://github.com/boazsegev/combine_pdf/issues/18
有没有办法合并存储在S3中的文件而不必下载它们?
修改
我最终这样做的方法是使用concurrent.futures
并使用concurrent.futures.ThreadPoolExecutor
实现它。我设置了最多8个工作线程来从s3下载所有pdf文件。
下载完所有文件后,我将它们与pdfbox合并。简单。
答案 0 :(得分:2)
S3只是一个数据存储,因此在某种程度上,您需要将PDF文件从S3传输到服务器然后再返回。通过在与S3存储桶位于同一区域的EC2实例进行转换,您可能获得最佳速度。
如果您不想自己启动EC2实例,那么另一种选择可能是使用AWS Lambda,这是一个计算服务,您可以上传代码并让AWS管理执行它。