Захват внешнего json для хранения в базе данных

Мне нужно взять около 70К небольших файлов json для хранения в БД. Имена файлов json пронумерованы от 1 до 70 000. Как лучше всего их всех схватить?

Вот как структурированы файлы.

domain.com/go.php?file=user/stats.json&id=1
domain.com/go.php?file=user/stats.json&id=2
domain.com/go.php?file=user/stats.json&id=3
domain.com/go.php?file=user/stats.json&id=4

и т.д

Вы хотите сделать это с помощью инструментов командной строки Linux? Python? C++? Вы просто хотите их загрузить или хотите добавить их в базу данных? Пожалуйста, добавьте дополнительную информацию к вашему вопросу и добавьте соответствующие теги, чтобы указать язык, который вы используете / хотите использовать.

hnefatl 08.12.2018 11:54

Я хотел бы скачать их через банкомат, но со временем мне придется добавить их в базу данных. Я пока не уверен, какая БД лучше всего подойдет для этой задачи, но доступ к ним будет осуществляться через php. БД - это то, что мне еще предстоит исследовать, чтобы выбрать, что было бы лучше всего. Спасибо

stoggafu 08.12.2018 12:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
29
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Простая однострочная программа bash для загрузки всех файлов:

for i in $(seq 1 70000); do wget "domain.com/go.php?file=user/stats.json&id=${i}" -o "${i}.json"; done

Если вам требуется загрузить их с помощью PHP, то должно сработать что-то вроде этого (я не использую PHP, поэтому я не уверен на 100%: исправления приветствуются):

for ($x = 1; $x <= 70000; $x++) {
    file_put_contents("{$i}.json", fopen("domain.com/go.php?file=user/stats.json&id = {$i}", 'r'));
}

Позже вы можете пропустить этап их локального хранения, записав содержимое удаленного файла JSON (из fopen) напрямую в БД, а не в файл сначала.

Замечательно, не знаю, почему я не подумал о сценарии bash, он отлично работает. Я также пробую подход php, чтобы посмотреть, как он будет работать с таким количеством файлов, но ничего не получил. Я уменьшил число 70000 до 50 для тестирования, и он загрузился в течение нескольких секунд, но ничего. Меня интересует часть о прямом хранении в базе данных, однако я еще не знаю, какую базу данных мне следует использовать, и каков самый простой способ подойти к этому. Есть какие-нибудь рекомендации? Спасибо!

stoggafu 08.12.2018 12:37

@stoggafu Боюсь, что я не тестировал подход PHP. Вероятно, он будет загружать файлы в корневую папку вашего веб-сайта, убедитесь, что вы немного поискали. О том, какую базу данных использовать, это не относится к теме StackOverflow (запрашиваются внешние ресурсы). Просто выберите один и бегите с ним, в долгосрочной перспективе это не будет иметь никакого значения.

hnefatl 08.12.2018 12:48

Другие вопросы по теме