2015-12-15 3 views
1

В настоящее время я использую pdfbox для загрузки всех моих pdf-файлов на свой сервер, а затем с помощью pdfbox для их объединения. Он работает отлично, но он очень медленный, так как я должен загрузить их все.Слияние файлов PDF, хранящихся на Amazon S3

Есть ли способ выполнить все это на S3 напрямую? Я пытаюсь найти способ сделать это, даже если не в java и в python и не может этого сделать.

я прочитал следующее:

Merging files on S3 Amazon

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

Есть ли способ объединить файлы, хранящиеся в S3, без необходимости загружать их?

EDIT

Так я в конечном итоге делает он использует concurrent.futures и его реализации с concurrent.futures.ThreadPoolExecutor. Я установил максимум 8 рабочих потоков для загрузки всех файлов PDF из s3.

Как только все файлы были загружены, я объединил их с pdfbox. Просто.

ответ

2

S3 - это просто хранилище данных, поэтому на каком-то уровне вам необходимо перенести файлы PDF с S3 на сервер, а затем обратно. Вероятно, вы получите максимальную скорость, выполнив конверсии в экземпляре EC2, расположенном в том же регионе, что и ваш ведро S3.

Если вы не хотите, чтобы вы делали это самостоятельно, вы можете использовать только AWS Lambda, который представляет собой вычислительную службу, в которой вы можете загрузить свой код и управлять AWS Это.

+0

Да, вот как я делаю это с __EC2__. – KVISH

+0

Есть ли лучший способ, чем просто использовать GET-запросы и загружать файлы с S3? Или это мой единственный вариант, насколько вам известно? – KVISH

+1

Выполнять запросы 'GET' параллельно. Даже на наименьших классах экземпляров, с параллельными запросами, вы легко * достигаете общей скорости передачи 25 мегабайт в секунду (200 Мбит/с) или лучше от S3 в том же регионе, основываясь на моих наблюдениях. –

Смежные вопросы