Ошибка: «405 Client Error: Method Not Allowed» при подключении к IPFS с помощью ipfshttpclient в проекте Django
Я работаю над проектом Django, в котором использую IPFS для хранения и получения файлов. Однако при попытке использовать библиотеку ipfshttpclient (или ipfsapi) для подключения к демону IPFS я сталкиваюсь с проблемой.
Когда я запускаю команду migrate в своем проекте Django, я получаю следующую ошибку:
405 Ошибка клиента: Метод не разрешен для url: http://localhost:5001/api/v0/version?stream-channels=true
Вот фрагмент моего кода, в котором возникает проблема:
Views.py
models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
import datetime
from django.contrib.postgres.fields import ArrayField
def teacherID():
t_id = 'TEA-1'
try:
prev = CustomUser.objects.values('teacher_id').last()
prev = prev['teacher_id']
number = prev.split('-')[1]
number=int(number)+1
t_id = 'TEA-'+str(number)
except:
t_id='TEA-1'
return t_id
ROLE = (
('teacher','teacher'),
('coe','coe'),
('superintendent','superintendent')
)
SEM = (
('None','None'),
('I','I'),
('II','II'),
('III','III'),
('IV','IV'),
('V','V'),
('VI','VI'),
('VII','VII'),
('VIII','VIII')
)
BRANCH = (
('None','None'),
('CSE','CSE'),
('IT','IT'),
('ECE','ECE'),
('EEE','EEE'),
('MECH','MECH'),
('BioTech','BioTech')
)
SUB = (
('None','None'),
('Compiler Design','Compiler Design'),
('Digital Signal Processing','Digital Signal Processing'),
('Cloud Computing','Cloud Computing'),
('Agile Development','Agile Development')
)
STATUS = (
('Pending','Pending'),
('Accepted','Accepted'),
('Uploaded','Uploaded'),
('Finalized','Finalized')
)
class CustomUser(AbstractUser):
teacher_id = models.CharField(max_length=20,default=teacherID,blank=True)
course = models.CharField(max_length=4,choices = (('None','None'),('B.E.',"B.E."),('M.E.','M.E.')),default='None')
semester = models.CharField(max_length=4,choices = SEM, default='None')
branch = models.CharField(max_length=40,choices=BRANCH,default='None')
subject = models.CharField(max_length=30,choices=SUB,default='None')
role = models.CharField(max_length=20,choices = ROLE, default='teacher')
def __str__(self):
return self.username
class Request(models.Model):
tusername = models.CharField(max_length=40,default='None')
s_code = models.CharField(max_length=7,default="None")
syllabus = models.FileField(default=None)
q_pattern = models.FileField(default=None)
deadline = models.DateField(default=datetime.date.today)
status = models.CharField(max_length=10,default='Pending')
enc_field = ArrayField(models.BinaryField(max_length=500,default=None),default=list)
private_key = models.FileField(default=None)
def __str__(self):
return self.tusername
class FinalPapers(models.Model):
s_code = models.CharField(max_length=7,default="None")
course = models.CharField(max_length=4,default='None')
semester = models.CharField(max_length=4,default='None')
branch = models.CharField(max_length=40,default='None')
subject = models.CharField(max_length=30,default='None')
paper = models.FileField(default=None)
def __str__(self):
return self.s_code
class SubjectCode(models.Model):
s_code = models.CharField(max_length=7)
subject = models.CharField(max_length=40)
def __str__(self):
return self.subject
Вот изображение моего работающего демона
Шаги, предпринятые на данный момент:
Убедитесь, что демон IPFS запущен, посетив сайт http://localhost:5001/webui. Веб-интерфейс загружается успешно.
Проверил версию демона IPFS с помощью ipfs --version. Моя текущая версия - 0.32.1.
Обновление библиотеки ipfshttpclient до последней версии (pip install --upgrade ipfshttpclient).
Вопросы:
Почему демон IPFS возвращает ошибку 405 Method Not Allowed для конечной точки /version?
Как правильно настроить проект Django и интеграцию с IPFS, чтобы решить эту проблему?
Существует ли конкретная проблема совместимости между библиотекой ipfshttpclient и моей версией демона IPFS?
Сведения об окружающей среде:
Хост ОС: Windows (через WSL2)
WSL OS: Ubuntu 20.04
Версия Python: 3.8
Django Version: 3.2
ipfshttpclient Версия: 0.4.13.2 (устанавливается через pip)
IPFS Daemon Version: 0.32.1
Я никогда не работал с этими технологическими стеками, и этот проект клонирован из репозитория github. Пожалуйста, дайте мне знать, если требуется любая другая информация