Чтение из удаленных баз данных sqlite3

На моем сервере я пытаюсь читать из множества баз данных sqlite3 (отправленных от веб-клиентов) и обрабатывать их данные. Файлы db находятся в ведомости S3, и у меня есть их url, и я могу открыть их в памяти.

Теперь проблема заключается в том, что sqlite3.connect принимает только абсолютную строку пути, и я не могу передать ей файл в памяти.

 conn=sqlite3.connect() #how to pass file in memory or url c=conn.cursor() c.execute('''select * from data;''') res=c.fetchall() # other processing with res 

One Solution collect form web for “Чтение из удаленных баз данных sqlite3”

SQLite требует, чтобы файлы базы данных сохранялись на диске (он использует различные блокировки и методы подкачки). Недостаточно файла в памяти.

Я бы создал временный каталог для хранения файла базы данных, записи его в этот каталог и подключения к нему. Справочник предоставляет SQLite пространство для записи журналов фиксации.

Чтобы справиться с этим, менеджер контекста мог бы быть полезным:

 import os.path import shutil import sqlite3 import sys import tempfile from contextlib import contextmanager @contextmanager def sqlite_database(inmemory_data): path = tempfile.mkdtemp() with open(os.path.join(path, 'sqlite.db'), 'wb') as dbfile: dbfile.write(inmemory_data) conn = None try: conn = sqlite3.connect(os.path.join(path, 'sqlite.db')) yield conn finally: if conn is not None: conn.close() try: shutil.rmtree(path) except IOError: sys.stderr.write('Failed to clean up temp dir {}'.format(path)) 

и используйте это как:

 with sqlite_database(yourdata) as connection: # query the database 

Это записывает данные в память на диск, открывает соединение, позволяет использовать это соединение, а затем очищает после вас.

  • Является ли этот код Python уязвимым для SQL-инъекции? (SQLite3)
  • Подключиться к базе данных в фляге, какой подход лучше?
  • производительность вставки с помощью python и sqlite3
  • Установите SQLAlchemy для использования PostgreSQL SERIAL для создания идентичности
  • нужна проверка и добавление базы данных sqlite для ведения домашнего хозяйства и управления кодом
  • Где разместить веб-приложение Flask + SQLite3?
  • Как реализовать предложение о наличии в sqlite django ORM
  • Как я могу регистрировать запросы в Sqlite3 с помощью Python?
  • Как я могу издеваться над sqlite3.Cursor
  • Как читать datetime обратно из sqlite как datetime вместо строки в Python?
  • ПРЕДУПРЕЖДЕНИЕ: для истории IPython требуется SQLite, ваша история не будет сохранена
  • Python - лучший язык программирования в мире.