Нет, нет волшебной пули.
(В стороне, вы должны понимать, что в S3 нет такой вещи, как «каталог». Существуют только объекты с путями. Вы можете получить каталогизированные списки, но символ «/» isn ' t magic - вы можете получить префиксы любым персонажем, который вы хотите.)
Как заметил кто-то, «предварительная застежка» может помочь как скорости загрузки, так и скорости добавления. (За счет дублирования хранилища.)
Если загрузка является узким местом, похоже, что вы загружаете серийно. S3 может поддерживать 1000 одновременных подключений к одному и тому же объекту, не нарушая пота. Вам нужно будет запустить тесты, чтобы узнать, сколько соединений лучше, поскольку слишком много соединений из одной коробки могут быть дросселированы S3. И вам может понадобиться сделать TCP tuning при выполнении 1000 соединений в секунду.
«Решение» сильно зависит от ваших шаблонов доступа к данным. Попробуйте переустановить проблему. Если ваши загрузки в одном файле нечасты, возможно, имеет смысл группировать их по 100 за раз в S3, а затем разбить их по мере необходимости. Если они небольшие файлы, может иметь смысл кэшировать их в файловой системе.
Или может иметь смысл хранить все 5000 файлов в виде одного большого zip-файла в S3 и использовать «интеллектуальный клиент», который может загружать определенные диапазоны zip-файла, чтобы обслуживать отдельные файлы. (S3 поддерживает диапазоны байтов, как я помню.)
http://www.w2lessons.com/2012/01/fast-zipping-in-amazon-s3.html –
Я видел это, но он по-прежнему требует загрузки каждого файл отдельно на ec2, который в настоящее время является нашим узким местом – Jin