微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django 中的 Azure Blob 存储错误 - 无法建立新连接:[Errno 111]

如何解决Django 中的 Azure Blob 存储错误 - 无法建立新连接:[Errno 111]

我正在使用 Docker 容器和 Docker-compose 设置本地 Azure Blob 存储。 但是,当我开始创建 blob 容器并上传文件时,它会引发如下错误

NSComboBox ControlSize: 
large/regular height = 25;
small height = 22;
mini height = 22;

这是我的 docker-compose:

azure.common.AzureException: httpconnectionPool(host='127.0.0.1',port=10000): Max retries exceeded with url: /devstoreaccount1/quickstartblobs?restype=container (Caused by NewConnectionError('<urllib3.connection.httpconnection object at 0x7f1068d0f748>: Failed to establish a new connection: [Errno 111] Connection refused',))

需求.txt

version: "3.9"
   
services:
 
      
  db:
    image: postgres
    volumes:
      - ./data/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - DEBUG=FALSE
      - AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwjpllmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://127.0.0.1:10000/devstoreaccount1;
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - 8000:8000
      - 5678:5678
    depends_on:
      - db
      
  azurite:
    image: mcr.microsoft.com/azure-storage/azurite
    ports:
      - "127.0.0.1:10000:10000"

代码

djangorestframework==3.11.2
Django==3.1.8
Pygments==2.7.4
Markdown==3.2.1
coreapi==2.3.3
psycopg2-binary==2.8.4
dj-database-url==0.5.0
gunicorn==20.0.4
whitenoise==5.0.1
PyYAML==5.4
azure-storage-blob==2.1.0
ptvsd==4.3.2
azure-common==1.1.23
azure-storage-common==2.1.0
requests==2.25.1
six==1.11.0
urllib3==1.26.3

解决方法

您可以在撰写文件中删除 azurite 服务的端口部分,并在您的应用程序中提供连接字符串并将 blob 端点(如此处所述:https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azurite#connection-strings)指定为 --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-6-5990df7ecb15> in <module> 8 ) 9 ---> 10 trainer.fit(model,datamodule = FruitsDataModule) /opt/conda/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py in fit(self,model,train_dataloader,val_dataloaders,datamodule) 497 498 # dispath `start_training` or `start_testing` or `start_predicting` --> 499 self.dispatch() 500 501 # plugin will finalized fitting (e.g. ddp_spawn will load trained model) /opt/conda/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py in dispatch(self) 544 545 else: --> 546 self.accelerator.start_training(self) 547 548 def train_or_test_or_predict(self): /opt/conda/lib/python3.7/site-packages/pytorch_lightning/accelerators/accelerator.py in start_training(self,trainer) 71 72 def start_training(self,trainer): ---> 73 self.training_type_plugin.start_training(trainer) 74 75 def start_testing(self,trainer): /opt/conda/lib/python3.7/site-packages/pytorch_lightning/plugins/training_type/training_type_plugin.py in start_training(self,trainer) 112 def start_training(self,trainer: 'Trainer') -> None: 113 # double dispatch to initiate the training loop --> 114 self._results = trainer.run_train() 115 116 def start_testing(self,trainer: 'Trainer') -> None: /opt/conda/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py in run_train(self) 605 self.progress_bar_callback.disable() 606 --> 607 self.run_sanity_check(self.lightning_module) 608 609 # set stage for logging /opt/conda/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py in run_sanity_check(self,ref_model) 852 # to make sure program won't crash during val 853 if should_sanity_check: --> 854 self.reset_val_dataloader(ref_model) 855 self.num_sanity_val_batches = [ 856 min(self.num_sanity_val_steps,val_batches) for val_batches in self.num_val_batches /opt/conda/lib/python3.7/site-packages/pytorch_lightning/trainer/data_loading.py in reset_val_dataloader(self,model) 362 has_step = is_overridden('validation_step',model) 363 if has_loader and has_step: --> 364 self.num_val_batches,self.val_dataloaders = self._reset_eval_dataloader(model,'val') 365 366 def reset_test_dataloader(self,model) -> None: /opt/conda/lib/python3.7/site-packages/pytorch_lightning/trainer/data_loading.py in _reset_eval_dataloader(self,mode) 276 # always get the loaders first so we can count how many there are 277 loader_name = f'{mode}_dataloader' --> 278 dataloaders = self.request_dataloader(getattr(model,loader_name)) 279 280 if not isinstance(dataloaders,list): /opt/conda/lib/python3.7/site-packages/pytorch_lightning/trainer/data_loading.py in request_dataloader(self,dataloader_fx) 396 The dataloader 397 """ --> 398 dataloader = dataloader_fx() 399 dataloader = self._flatten_dl_only(dataloader) 400 TypeError: val_dataloader() missing 1 required positional argument: 'self'

当您使用 docker 本地桥接器(为使用 compose 部署的服务创建)时,如果明确提供了容器名称,则服务名称可用于访问服务。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。