5

django ImageField のアップロード動作をオーバーライドして、何らかの URL にアップロードした後にファイルが ipfs ノードに追加されるようにしたいと考えています。

たとえば、私のモデルは次のようなものです。

class Profile(models.Model):
    picture = models.ImageField(upload_to=upload_location, blank=True)

最初に、他のイメージと同じように保存しようとしますが、IPFS ハッシュを与えます。これにより、ユーザーはクライアント側のデータをロードできるようになります。

私の見解では、実行中の ipfs デーモンのインスタンスを取得する次のコードがあります。

import ipfsapi
from subprocess import call

os.system("ipfs daemon")
api = ipfsapi.connect('127.0.0.1', 5001)

python manage.py makemigrationsまたはを実行しようとするとrunserver、デーモンは実行されますが、残りのコマンドは実行されません。

Initializing daemon...
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip4/174.56.29.92/tcp/4001
Swarm listening on /ip4/192.168.1.109/tcp/4001
Swarm listening on /ip6/::1/tcp/4001
API server listening on /ip4/127.0.0.1/tcp/5001
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Daemon is ready

ipfs デーモンと django サーバーを起動するにはどうすればよいですか? 同じポート (Django 8000、IPFS 8080) でリッスンしているようには見えないのに、なぜこの問題が発生するのでしょうか?

4

1 に答える 1