Я использую библиотеку requests
для получения двоичного файла с веб-сайта. Теперь я хочу сохранить его в MySQL как BLOB. Я не хочу делать промежуточный шаг записи файла на диск. Каков наилучший способ сделать это?
В настоящее время я использую base64
для кодирования двоичного файла, чтобы MySQL принял его, как в это предложение . Это лучшая стратегия или есть способ, позволяющий мне пропустить кодировку (и последующее декодирование при извлечении файла)?
Минимальный пример:
import base64
import pymysql
import requests
myPDF = requests.get("https://arxiv.org/pdf/2004.00627.pdf")
myPDF_encoded = base64.b64encode(myPDF.content)
conn = pymysql.connect(
host = "127.0.0.1",
user = user,
passwd = password,
db = "myDB")
cur = conn.cursor()
insertLine = "INSERT INTO myDB (PDF) VALUES (%s)"
cur.execute(insertLine, myPDF_encoded)
conn.commit()
Множество сообщений говорить об общей проблеме записи двоичного файла в BLOB, но, насколько я могу судить, все начинается с предположения, что файл должен быть прочитан с диска.